PDA

View Full Version : [JAVA] $PATH != PATH java


Vheon
04-12-2009, 17:26
Salve a tutti... il titolo non è chiarissimo, e quindi vado a spiegarmi...

Sto facendo un'applicazione che deve aprire un'applicazione che ho installato sulla mia macchina... il fatto è che se io digito nel terminale echo $PATH e mi stampa il PATH, ma se eseguo System.out.println(System.getenv("PATH"))
me ne stampa uno diverso, con meno cose... come faccio ad impostare il PATH della macchina nell'environment di java in modo automatico??

wingman87
04-12-2009, 17:51
Non è che la tua shell all'avvio aggiunge dei percorsi alla variabile path? In tal caso è normale

Vheon
04-12-2009, 18:01
cioe' praticamente se faccio echo $PATH

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/vheon:/Users/vheon/bin

quelli in rosso sono quelli che aggiungo io quando apro la shell, ma se faccio
System.out.println(System.getenv("PATH"));


questo e' il risultato
/usr/bin:/bin:/usr/sbin:/sbin

wingman87
04-12-2009, 18:05
Non mi vengono in mente altre idee al momento, speriamo che qualcuno sappia risponderti

PGI-Bis
04-12-2009, 20:59
Usa System.getProperty, dichiarando e definendo la proprietà all'avvio del programma. Es.:

public class Main {

public static void main(String[] args) {

String path = System.getProperty("path");
java.util.Scanner s = new java.util.Scanner(path);
s.useDelimiter(System.getProperty("path.separator"));
while(s.hasNext()) {
System.out.println(s.next());
}
}
}

Se eseguito con:

java -Dpath="%PATH%" Main

sputa il path (in windows).

Non so se in Unix al posto di % ci vada il $, cioè:

java -Dpath="$PATH" Main