[Java lista] txt-file from jar-file

Legéndi Richárd Olivér roante at freemail.hu
2007. Jan. 7., V, 10:53:54 CET


Szia!

Hát, ez egy elvileg egyszerűen megoldható probléma, de én eddig mindig 
csak szívtam vele :-)
Szóval hívsz egy sima

        getClass().getClassLoader().getResource("/doc.txt"); -t (v. 
getResourceAsStream-et).

Az a bajom vele, hogy valahogy soha nem sikerült normálisan megcsinálni 
a dolgot, hogy platformtól függetlenül működjön, hol így megy, hogy úgy.
Néha kell a ClassLoader, néha a class.getResource is működik, néha nem 
kell a String elejére a "/", hogy megtalálja a jar gyökerében lévő cuccokat,
néha igen, stb.

A képekkel ugyanez a problémám, elvileg az ImageIcon is tudja ezt, ha 
"/" jellel kezded a nevet, csak ez pl. Win-en nem működik nekem, Linux alatt
meg simán ;]

Persze nyilván csak én vagyok a béna, és még nem jöttem rá a trükkre 
:-))) (vagy lehet, hogy csak le kéne végre ülnom egyszer elolvasni a 
doksikat ;] )

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class JarReader {
    public static void main(String[] args) {
        BufferedReader br = null;
       
        try {
            br = new BufferedReader(
                    new InputStreamReader(
                            
JarReader.class.getClassLoader().getResourceAsStream("doc.txt")
                    )
            );
           
            while ( br.ready() ) {
                String line = br.readLine();
                System.out.println( line );
            }
           
        } catch (IOException ioe) {
            ioe.printStackTrace();
           
        } finally {
            if ( br != null ) {
                try { br.close(); } catch (Exception e) { 
e.printStackTrace(); }
            }
        }
       
    }
}

Én mindenesetre azt ajánlanám, hogy inkább tedd a jar mellé egy 
könyvtárba az ilyen resource-okat, azzal nincsenek ilyen problémák.

Ricsi

Keresztes József wrote:
> Sziasztok !
>  
> Szerintetek hogy lehetne azt megcsinálni egy sima java application 
> esetében
> hogy van egy jar-file amit futtatok, és amelyben szerepel egy 
> documentation.txt (ez lenne a programhoz tartozó dokumentáció), s a 
> program futás közben kiszedné a jar-ból ezt a txt-t és beolvasná(a 
> tartalmát megjelenítené) ?
>  
> Vagy inkább a programhoz tartozó dokumentáció legyen teljesen külön a 
> jar-tól mert abból túl macerás kiszedni ?
>  
> Egyébként hasonló kérdés előfordulhat úgy is hogy a jar-ban image-ek 
> vannak (gif,jpg), amiket pl. nyomógombokra szeretnénk rátenni, ezt is 
> valahogy ki kellene túrni a jar-ból futás közben...
>  
> Joe



További információk a(z) Javalist levelezőlistáról