Domanda

In Linux, JVM imposta la directory di lavoro uguale alla cartella home dell'utente. In Windows è questa la cartella in cui si trova il vaso. Come posso trovare dove si trova il jar (dalla mia app) per cambiare la directory di lavoro?

Martijn

È stato utile?

Soluzione

Prova a ottenere il percorso del vaso con questo codice:

String path = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();

Quindi puoi rimuovere il " *. jar " parte con:

path=path.substring(0, path.lastIndexOf('/')+1);

Ho avuto lo stesso problema con un gioco Java quando avevo bisogno di aprire un file nella stessa directory del vaso.

Facendo doppio clic sul vaso in Linux non è stato aperto il file. Ovviamente puoi aprire una riga di comando e cambiare dir nella directory jar e quindi eseguire il jar da lì, ma ho dovuto fare doppio clic sul jar.

Altri suggerimenti

In entrambi i casi è la directory effettiva. Sotto Windows automaticamente la directory effettiva viene impostata sulla base-dir del jar, se la si esegue da explorer. Sotto linux la directory home è la directory effettiva per la tua GUI. Per impostare la directory scrivere un breve script di shell, che imposta la directory effettiva (con il comando cd) e quindi esegue il jar (con javaw -jar xyz.jar).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top