在 Ubuntu 中设置或获取 $JAVA_HOME 的系统范围方法?

在 Ubuntu 中设置或获取 $JAVA_HOME 的系统范围方法?

我想知道Ubuntu本身是否提供了系统范围的方式来查找当前JAVA_HOME或是否有正确的位置进行设置JAVA_HOME

Mac OS X 在这方面做得很好,因为/usr/libexec/java_home命令返回当前的JAVA_HOME.但对于 Ubuntu,我找到的资料总是告诉我将指向设置$JAVA_PATH为静态路径,该路径存储在~/.bash_profile.

然而,我认为这种方法有几个缺点:

  1. 一旦Java更新,迷你版本号就会改变,这使得静态路径不再可用。
  2. 更改我的系统中使用的 JRE 后update-alternatives,我必须$JAVA_HOME.bash_profile.这种额外的工作很烦人。
  3. 有些必需的程序,根本$JAVA_HOME不知道。.bash_profile我必须$JAVA_HOME在他们的启动脚本中进行设置,因此标准且简单的获取方式$JAVA_HOME对我来说似乎至关重要。

嗯,欢迎任何建议。谢谢。

答案1

有点 hacky,但是将此行放入您的/etc/profile系统范围内进行设置:

export JAVA_HOME=$(dirname $(dirname $(readlink -e /usr/bin/javac)))

答案2

您可以在 中设置环境变量/etc/environment,它由 PAM 设置。还应该存在/usr/lib/jvm不随次要版本而更改的符号链接。

JAVA_HOME=/usr/lib/jvm/java-6-sun

答案3

如果您确定可以调用“java”命令,这对您不起作用吗?

export JAVA_HOME=$(dirname $(java -XshowSettings:properties -version 2>&1 | grep 'java\.home' | awk '{ print $3 }'))

答案4

设置路径系统配置文件

编辑系统路径文件/etc/profile

sudo gedit /etc/profile

在最后添加以下行

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

为了http://javaandme.com/获取完整的安装指南。

相关内容