【问题标题】:Why Java code does not display the environment variables $JAVA_HOME and $M2_HOME? [duplicate]为什么 Java 代码不显示环境变量 $JAVA_HOME 和 $M2_HOME? [复制]
【发布时间】: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


【解决方案1】:

我认为您需要使用export 命令将shell 变量 导出为环境变量

export JAVA_HOME="/usr/lib/jvm/java-8-oracle/​"
export CLASSPATH="JAVA_HOME/lib/:$CLASSPATH"
export PATH="$JAVA_HOME/bin/:$PATH"

那就一定要reload your .bashrc

【讨论】:

  • 我将导出作为环境变量的前缀放在 .bashrc 文件中并重新启动计算机,但是当我运行相同的代码时,sn-p 不显示环境变量 $JAVA_HOME 和 $M2_HOME。
猜你喜欢
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
相关资源
最近更新 更多