cat78
10-10-2002, 19:20
Non riesco a trovare un metodo che mi restituisca la directory corrente ( per intenderci quella da cui lanci java, per es. C:\pippo\pluto>java myprog , la dir corrente è C:\pippo\pluto )... ho cercato in tutta la documentazione jdk.. possibile che non esista? :confused: 
il fatto è che quando creo un oggetto dal nome di un file, per esempio quando creo una icona così:
new Icon("mypicture.png");
se l'interprete java è stato lanciato da una dir diversa dalla root del mio pacchetto, il file mypicture.png non verrà trovato e quindi non verrà visualizzato.
faccio un esempio: se io ho la mia classe java "mycode.class" nel pacchetto "it.ciaociao.test" che si trova nella dir C:\pkg , ovvero avrò C:\pkg\it\ciaociao\test\mycode.class , e nel codice viene richiamato il file mypicture.png che si trova in C:\pkg\mypicture.png , se io lancio l'interprete così:
C:\pkg>java it.ciaociao.test.mycode
il file .png viene trovato correttamente, ma se invece ho
C:\>java -cp C:\pkg it.ciaociao.test.mycode
allora il file .png non viene trovato perchè la dir corrente (C:\) non lo contiene!!
Come faccio a ovviare al problema visto che a priori non posso sapere da dove verrà lanciato l'interprete java?
...non so se sono riuscito a spiegarmi bene.. spero abbiate capito :p
il fatto è che quando creo un oggetto dal nome di un file, per esempio quando creo una icona così:
new Icon("mypicture.png");
se l'interprete java è stato lanciato da una dir diversa dalla root del mio pacchetto, il file mypicture.png non verrà trovato e quindi non verrà visualizzato.
faccio un esempio: se io ho la mia classe java "mycode.class" nel pacchetto "it.ciaociao.test" che si trova nella dir C:\pkg , ovvero avrò C:\pkg\it\ciaociao\test\mycode.class , e nel codice viene richiamato il file mypicture.png che si trova in C:\pkg\mypicture.png , se io lancio l'interprete così:
C:\pkg>java it.ciaociao.test.mycode
il file .png viene trovato correttamente, ma se invece ho
C:\>java -cp C:\pkg it.ciaociao.test.mycode
allora il file .png non viene trovato perchè la dir corrente (C:\) non lo contiene!!
Come faccio a ovviare al problema visto che a priori non posso sapere da dove verrà lanciato l'interprete java?
...non so se sono riuscito a spiegarmi bene.. spero abbiate capito :p