PDA

Visualizza la versione completa : [JAVA] Leggere variabili d'ambiente in Unix


gaetanoTwins
02-12-2005, 21:30
Salve ragazzi, come posso leggere le variabili di ambiente di Unix in Java?

netarrow
02-12-2005, 21:41
System.getenv o System.getProperty

:ciauz:

gaetanoTwins
03-12-2005, 01:07
Ho provato, ma mi da errore:
String percorso = System.getenv("PATH");

L'errore il seguente:
[genny@localhost servlets]$ javac gestioneFile.java
Note: gestioneFile.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.

[genny@localhost servlets]$ javac gestioneFile.java -deprecation
gestioneFile.java:10: warning: getenv(java.lang.String) in java.lang.System has been deprecated
String percorso = System.getenv("PATH");//GLOBUS_LOCATION");
^
1 warning


Come posso risolvere??
grazie

Ed_Bunker
03-12-2005, 01:19
Dovrebbe essere System.getProperty(...)

gaetanoTwins
03-12-2005, 11:56
ho provato ma continua a non funzionare; questa volta nn mi ritorna errore ma dice che la stringa vuota.

System.getProperty("PATH");

Come mai, premetto che la variabile di ambiente PATH non vuota.

Grazie

floyd
03-12-2005, 12:09
dalla 1.5 getenv ritorna il valore di una variabile di ambiente e non deprecata
tu stai compilando con la 1.4.2 o una precedente

gaetanoTwins
03-12-2005, 12:16
Hai ragione, come posso risolvere per la mia versione 1.4.2

floyd
03-12-2005, 12:20
non puoi :bh:

a dire il vero potresti eseguire un comando e leggere il risultato
tipo


Process p = Runtime.getRuntime().exec("echo", new String[] {"$PATH"});
InputStream is = p.getInputStream();

e leggi il risultato :D

gaetanoTwins
03-12-2005, 17:23
p.getInputStream() ritorna l'output del processo "echo $PATH" e lo memorizza nel buffer "is".
come posso memorizzare l'output del processo in una stringa

Grazie ancora...

netarrow
03-12-2005, 18:10
...
int i = 0;
String str = "";
while((i = is.read()) != -1) {
str += (char) i;
}
...

:ciauz:

Loading