【发布时间】:2015-08-10 20:45:40
【问题描述】:
在.bashrc文件末尾插入环境变量:
$JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle/"
CLASSPATH="JAVA_HOME/lib/:$CLASSPATH"
PATH="$JAVA_HOME/bin/:$PATH"
$M2_HOME
M2_HOME="/usr/share/maven/"
M2="$M2_HOME/bin"
PATH="$M2:$PATH" PATH=$M2:$PATH
当我运行代码 sn-p:
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n", envName, env.get(envName));
}
显示我所有的环境变量:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
XAUTHORITY=/home/ricardoramos/.Xauthority
XMODIFIERS=@im=ibus
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/
GDMSESSION=ubuntu
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
TEXTDOMAINDIR=/usr/share/locale/
GTK_IM_MODULE=ibus
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-rS3vXA2fJM
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
XDG_CURRENT_DESKTOP=Unity
SWT_GTK3=0
UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1996...
为什么Java代码不显示环境变量$JAVA_HOME和$M2_HOME?
【问题讨论】:
-
1.你什么时候设置的环境变量? 2. 你是如何运行你的 Java 代码的?我问是因为如果您在陈旧的命令提示符下或在运行的 Eclipse 实例中运行 Java 代码(例如),您可能需要重新启动才能获取最新的环境变量和值。
-
在 .bashrc 文件末尾插入环境变量后,我立即重新启动计算机并使用 eclipse 运行代码,但没有显示环境变量 $JAVA_HOME 和 $M2_HOME。
-
除非您从终端/shell 启动 Eclipse,否则它不一定会将“.bashrc”变量作为其环境的一部分。即使 eclipse 这样做了,它仍然可以使用
execle/execvpe调用 JRE 来覆盖 eclipse 父进程的任何环境变量。我认为无论如何,在开发中“正确”的答案是将这些环境变量设置为 eclipse 中运行/调试目标配置中的参数。
标签: java linux ubuntu environment-variables