PDA

View Full Version : Percorso relativo java


gaiapuffo
06-05-2013, 09:00
Nella realizzazione di un programma che accede ad un database tramite un
percorso, si deve fare in modo che tale percorso sia relativo, poichè
ciascun utente potrebbe scegliere una destinazione diversa per l'applicazione e,
indirettamente, anche per il database, se questo viene installato nella cartella
del programma o in una sottocartella della stessa.
Per determinare il percorso del database a runtime, potresti utilizzare un
percorso relativo rispetto alla cartella corrente, che solitamente è la cartella
in cui si trova l'eseguibile, In java quali sono le librerie per ottenere l'indirizzo della cartella corrente? Oppure che tecniche usate voi?

banryu79
07-05-2013, 08:52
public class Main{
public static void main(String[] args){
System.out.println(System.getProperty("user.dir"));
}
}

Questo codice stampa sullo standard output il path della cartella "corrente" cioè il path in cui si trova il file lanciato (Main.class).

balth@zar
09-05-2013, 16:02
Per determinare il percorso del database a runtime, potresti utilizzare un
percorso relativo rispetto alla cartella corrente, che solitamente è la cartella
in cui si trova l'eseguibile ...

Solitamente ma non sempre, dato che è possibile lanciare l'applicazione da qualsiasi altra cartella.
Se vuoi determinare il path dove si trovano fisicamente i .jar dell'applicazione puoi ottenere l'URL della classe principale tramite il classloader:

URL url=myClass.getResource(myClass.getName().replace('.','/')+".class")

Se la classe è impacchettata in un jar l'URL avrà una forma del tipo

"jar:file:/path-del-jar!nome-della-classe"

estraendo la sottostringa path-del-jar ricavi il percorso di installazione.