PDA

View Full Version : Java & directory corrente


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

recoil
10-10-2002, 21:37
ti spiego come ottenere la directory corrente.

import java.util.Properties

Properties propr = System.getProperties();

a questo punto in propr hai diverse proprietà, tra le quali la directory da cui è stato lanciato il comando java classedi prova

String dircorrente = propr.getProperty("user.dir");

cn73
10-10-2002, 22:13
Originariamente inviato da recoil
[B]ti spiego come ottenere la directory corrente.

import java.util.Properties

Properties propr = System.getProperties();

a questo punto in propr hai diverse proprietà, tra le quali la directory da cui è stato lanciato il comando java classedi prova

String dircorrente = propr.getProperty("user.dir");

FRa l'altro puoi anche settarla!

props myProps = System.getProperties()

myProps.put("user.dir", "TUA DIR")

cat78
12-10-2002, 15:30
Fantastico! grazie 1k :)

..e pensare che sono stato una giornata intera a cercare in mezzo alla documentazione java..


ora devo trovare il modo di sfruttare il tutto per far sì che in qualsiasi modo e in qualsiasi diresctory venga lanciato il mio prog riesca sempre a trovare i file che servono.
magari provo a combinare dir corrente e classpath