[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