2011-02-05 15 views

Odpowiedz

20

Dla uzyskania tylko jednej zmiennej systemowej należy użyć następującego kodu:

String sysEnvStr = System.getenv("JAVA_HOME"); 

Jeśli zwróci null następnie wprowadź zmiany w swoim fiacie .bashrc le. Spróbuj wyeksportować tę konkretną zmienną.

+0

Cześć, Jak utworzyć nową zmienną i używać jej? Próbuję: eksportować MY_VAR = xyz, ale System.getenv ("MY_VAR") nadal ma wartość null? –

5

Zobacz this howto:

// just one 
System.out.println("PATH = " + System.getenv("PATH")); 

// all of them 
Map env = System.getenv(); 
for (Iterator it=env.entrySet().iterator(); it.hasNext();) { 
    Map.Entry entry = (Map.Entry)it.next(); 
    System.out.println(entry.getKey() + " = " + entry.getValue()); 
} 
+1

getenv jest przestarzałe – krakover

+9

Nie, getenv został przestarzały, a następnie usunięty w niektórych ciemnych czasach Java, co było naprawdę dużą głupotą. Zostało przywrócone w wersji 1.5. – maaartinus

+0

Yeap, nie widzę go jako przestarzałe: http://download.oracle.com/javase/6/docs/api/java/lang/System.html#getenv() – OscarRyz

0

sprawdzić, czy to działa dla Ciebie:

$cat Env.java 
class Env { 
    public static void main(String ... args) { 
    for(Object o : System.getenv().entrySet() ){ 
     System.out.println(o); 
    } 
    } 
} 
$java Env 
TERM=xterm 
LESSCLOSE=/usr/bin/lesspipe %s %s 
SESSION_MANAGER=local/oreyes-laptop:@/tmp/.ICE-unix/2341,unix/oreyes-laptop:/tmp/.ICE-unix/2341 
GNOME_DESKTOP_SESSION_ID=this-is-deprecated 
GDMSESSION=gnome 
XDG_SESSION_COOKIE=2604d05dc122db9b636d41744aeeb7a2-1296882161.129722-1315567412 
MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path 
PS1=$ 
NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat 
GDM_KEYBOARD_LAYOUT=latam 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 
XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg 
XAUTHORITY=/var/run/gdm/auth-for-oreyes-5QyKYh/database 
GDM_LANG=en_US.utf8 
USERNAME=oreyes 
GTK_MODULES=canberra-gtk-module 
GNOME_KEYRING_CONTROL=/tmp/keyring-DqJ9Sg 
SHLVL=1 
SPEECHD_PORT=7560 
XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt 
COLORTERM=gnome-terminal 
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ 
JDK_HOME=/usr/lib/jvm/java-6-sun 
LOGNAME=oreyes 
WINDOWID=79691780 
GPG_AGENT_INFO=/tmp/seahorse-vkmfjC/S.gpg-agent:2385:1 
SSH_AUTH_SOCK=/tmp/keyring-DqJ9Sg/ssh 
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/i386 
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-15CfDJRFNg,guid=6ebfc2e2421576b21ec0d2284d4cd9f2 
SHELL=/bin/bash 
GNOME_KEYRING_PID=2323 
GOARCH=386 
DESKTOP_SESSION=gnome 
DISPLAY=:0.0 
USER=oreyes 
HOME=/home/oreyes 
HISTCONTROL=ignoreboth 
LESSOPEN=| /usr/bin/lesspipe %s 
DEFAULTS_PATH=/usr/share/gconf/gnome.default.path 
+0

Chcę kilka konkretnych ścieżek. Nie wszystkie ścieżki. Jakie zmiany należy wprowadzić w powyższym kodzie? – Antrromet

+0

@Antrromet Powinieneś był zapytać o to na pierwszym miejscu, a nie * "wartość zmiennych środowiskowych (np. Przypisanych w pliku .bashrc)" * Odpowiedź Harshit jest poprawna. – OscarRyz

Powiązane problemy