【问题标题】:How to I obtain the value of the environment variables? [duplicate]如何获取环境变量的值? [复制]
【发布时间】:2011-06-21 20:01:37
【问题描述】:

可能重复:
Access shell environment variables Java

我在 linux 中创建了一个独立的 java 应用程序。

如何获取环境变量的值(例如在.bashrc 文件中分配的值)。

【问题讨论】:

标签: java linux environment-variables


【解决方案1】:

如果只获取一个系统变量,请使用以下代码:

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

如果它返回null,则在您的.bashrc 文件中进行更改。尝试导出该特定变量。

【讨论】:

  • 嗨,如何创建新变量并使用它?我尝试: export MY_VAR=xyz 但 System.getenv("MY_VAR") 仍然为空?
【解决方案2】:

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());
}

【讨论】:

  • 不,getenv 已被弃用,甚至在 Java 的一些黑暗时期被删除,这真是一个大愚蠢。它已在 1.5 中恢复。
  • 是的,我不认为它已被弃用:download.oracle.com/javase/6/docs/api/java/lang/…
  • 我想要一些特定的路径。不是所有的路径。假设我只想要“NS”的路径,那么我应该在上面的代码中做些什么更改?
  • 这是在评论“just one”下列出的内容。 String NS = System.getenv("NS");
  • @Antrromet:你确定你了解环境变量吗?你想要一个具体的路径是什么?
【解决方案3】:

看看这是否适合你:

$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

【讨论】:

  • 我想要一些特定的路径。不是所有的路径。上面的代码应该做哪些改动?
  • @Antrromet 你应该首先问这个问题,而不是 “环境变量的值(例如在 .bashrc 文件中分配)” Harshit 的回答是正确的。
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
相关资源
最近更新 更多