Rekl bych ze toto je obecne problem s class.getResource("") - zalezi,
jestli se se spousti z JARu ci jineho JAR-like balicku nebo z classes.
Napr. pokud delate WAR nebo EAR, tak pak zalezi, jestli jej nasazujete
zabaleny nebo rozbaleny. Spise povazuji za chybu, ze Java neobsahuje
tridy pro praci s URL, ve kterem je 'jar!', jako s normalnim
filesystemem. Nejake projekty takove prostredky maji, treba JBoss VFS
(ale ten zase mival par bugu kdyz v ceste byla mezera, snad uz to
opravili).

2009/9/7 Petr Prochazka <[email protected]>:
> To je v poradku. NB pousteji maven goal pro compilaci (compiler:compile) a
> ten preklada to target/classes a NB pro spusteni projektu tento pouziji jako
> projektovou classpath a nepouziji vybuildovany jar soubor...
> IMHO zadne IDE nepouziva pro spusteni vybuildovany jar, ale prelozene
> classy...
>
> Petr Prochazka
> 2009/9/7 Dusan Zatkovsky <[email protected]>
>>
>> No, tak tu je to podstatne zabavnejsie.
>>
>> package foo.test;
>> public class App {
>>    public static void main(String[] args) {
>>        System.out.println(App.class.getResource("").getFile());
>>    }
>> }
>>
>> 1. pokial to pustim v NB, dostanem:
>> /home/msk/NetBeansProjects/delme1234/target/classes/foo/test/
>>
>> 2. pokial to pustim ako java -cp target/delme.jar foo.test.App, dostanem:
>>
>> file:/home/msk/NetBeansProjects/delme1234/target/delme1234-1.0-SNAPSHOT.jar!/foo/test/
>>
>> ... cim som vlastne vyriesil dany problem len ciastocne, pretoze pri tomto
>> zazracnom spravani nebudem schopny danu aplikaciu rozumne ladit :-)
>>
>>
>> > Zkusil bych si vzit /getResourceAsStream("")/ (nebo /getResource("")/),
>> > abych z toho ziskal typ File a znej si pak vytisknout |*getCanonicalPath
>> >
>> > <http://www.j2ee.me/javase/6/docs/api/java/io/File.html#getCanonicalPath%28
>> >%29>*().
>> >
>> >
>> > To Vam ukaze, kde je root. Nedavno jsem to resil uplne stejnym zpusobem,
>> > ale kod jiz samozrejme nemam.
>> >
>> > Arny
>> >
>> > Dusan Zatkovsky wrote:
>> > > Ahoj.
>> > >
>> > > Narazil som na problem s in-jar resources a neviem si rady.
>> > >
>> > > Vyrobim si maven quickstart projekt. V src/main/resources vytvorim
>> > > subor
>> > > foo.txt. Nasledne v main() zavolam:
>> > >
>> > >     x = Main.class.getResourceAsStream("/foo.txt");
>> > >
>> > > Dostanem inputstream na ten foo.txt. Ten je v jar-e ulozeny priamo v
>> > > roote ako /foo.txt.
>> > >
>> > > Problem nastane v momente, ked do toho projektu pridam webservice
>> > > client.
>> > > Od tohoto momentu mi getResource() vracia null. Pravdepodobne to bude
>> > > suvisiet s tym, ze maven nejak preorganicuje projekt kvoli tej WS, ale
>> > > ja
>> > > neviem, kde mam ten foo.txt nasledne hladat.
>> > >
>> > > V jar-e ho vidim v /META-INF/main/java/resources/foo.txt, ale neviem,
>> > > kde
>> > > vidi getResource() svoj root, pretoze som skusal od /META-INF postupne
>> > > uberat kazdy podadresar a na vsetko som dostal null.
>> > >
>> > > Tusi niekto?
>> > >
>> > > D.
>> --
>> Dusan
>
>



-- 
Ondra Medek

Odpovedet emailem