2010-12-14 14 views
13

Sto eseguendo un'applicazione Java dalla riga di comando. Posso specificare un argomento della riga di comando per impostare la directory corrente corrente su qualcosa di diverso da dove l'applicazione verrà effettivamente eseguita?È possibile impostare la directory corrente in esecuzione dalla riga di comando java?

+0

Non è sicuro che si tratti di un duplicato, ma può essere utile http://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java – khachik

+0

Sì, potrebbe essere utile. nuovo file (genitore, percorso) potrebbe funzionare. Dovrò provare. Motivo per cui ho postato questa domanda è che sto cercando di utilizzare un profiler su una DLL che viene caricata dall'applicazione. Dal momento che devo essenzialmente java.exe profilo, la directory di lavoro corrente viene impostata sulla mia cartella jdk e getta via i miei percorsi relativi nella mia applicazione. – user538442

+0

Il profiler dovrebbe avere un'opzione per impostare la directory iniziale. O forse è possibile scrivere un file BAT e dire al profiler di eseguirlo? –

risposta

0

Se si desidera modificare la directory corrente, sarà necessario utilizzare JNI e richiamare un'API nativa dal codice Java. Ad esempio, per Windows si usa SetCurrentDirectory

+0

Sto usando JNI quindi questa potrebbe essere una possibile soluzione. – user538442

+0

Questo renderà il tuo codice completamente non portatile, ovviamente. –

3

Se possibile tutto questo avrei preferito utilizzare uno script per eseguire l'applicazione Java e impostare la directory nello script:

#!/bin/sh 
cd <your dir> 
java <some arguments> 

La JNI-soluzione può interessare tutti tipi di percorsi relativi nella tua applicazione; per esempi il classpath inserito.

33

C'è un argomento JVM -Duser.dir che può essere utilizzato per impostare la directory di lavoro per JVM.

0

Ho trovato questo post SO e mi ha aiutato a risolvere il mio problema. Anche se volevo condividere qualcosa di specifico su IntelliJ che potesse far inciampare qualcun altro.

mi hanno inviato un foto qui sotto in cui viene utilizzato il flag -Duser.dir e anche il campo di testo Directory di lavoro viene compilato.

"Working Directory" field has lower precedence than the -Duser.dir flag.

In questa situazione, la directory di lavoro verrà impostato su "JarLearning" piuttosto che "2ndTry".

Problemi correlati