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

Jia*_* W. 10 ubuntu path java

我想知道 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对我来说似乎很重要。

好吧,欢迎任何建议。谢谢。

小智 6

有点hacky,但把这一行放在你/etc/profile的系统范围内:

export JAVA_HOME=$(dirname $(dirname $(readlink -e /usr/bin/javac)))
Run Code Online (Sandbox Code Playgroud)