echo $JAVA_HOME
给出:/usr/lib/jvm/java-6-sun
但我已在/usr/lib/jvm/java-7-openjdk-amd64
/etc/environment
source /etc/environment
给出了我设定的路径,即/usr/lib/jvm/java-7-openjdk-amd64
下次尝试echo $JAVA_HOME
时,会显示错误的路径。
答案 0 :(得分:1)
/etc/profile
或~/.bashrc
中可能有代码再次设置变量。
尝试使用grep -r JAVA_HOME /etc
和grep JAVA_HOME ~/.??*
查找已使用过的地方。
为了避免这样的麻烦,我通常在~/bin/
中创建shell脚本,这些脚本与我想要执行的工具同名,为环境做准备。
答案 1 :(得分:1)
在Ubuntu上,推荐的方法似乎是将行JAVA_HOME=/usr/lib/jvm/default-java
添加到/etc/environment
并使用update-alternatives工具来管理实际的jvm。
您可能在/etc/profile.d/
中有一个覆盖此内容的脚本,该脚本应删除。
您可以通过运行来查看当前安装和可用的Java替代品:
update-java-alternatives --list
要选择要使用的jvm,请使用适合您的任何版本运行以下命令:
update-java-alternatives --set java-1.7.0-openjdk-amd64