如何在 Debian/Ubuntu 上确定 JAVA_HOME?

Wit*_*tek 105 ubuntu debian java

在 Ubuntu 上,可以同时拥有多个 JVM。使用 选择默认值update-alternatives。但这并没有设置JAVA_HOME环境变量,由于debian 政策

我正在编写一个启动程序脚本 (bash),它启动一个 Java 应用程序。这个java应用程序需要JAVA_HOME环境变量。那么如何获取当前选择的JVM的路径update-alternatives呢?

小智 146

对于 JRE,这样的事情应该可以解决问题:

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Run Code Online (Sandbox Code Playgroud)

  • 我需要 JDK 的主页而不是 JRE,但我使用了: JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:bin/javac::") 谢谢! (17认同)

小智 50

danadam 的解决方案可以很容易地用于根据需要检索 JDK(即不是 JRE)路径:

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
Run Code Online (Sandbox Code Playgroud)
  • 查找 JDK(但不是 JRE)中包含的 javac Java 编译器(而不是 java)。
  • 没有尾随 / (被 sed s:/bin... 而不是 s:bin... 剥离)


小智 15

export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

In.bashrc对我来说很方便。


dja*_*fan 10

所以,你是说这个命令对你没有任何作用?

sudo update-alternatives --config java 
Run Code Online (Sandbox Code Playgroud)

  • 那是要设置您的 JAVA_HOME 吗?我发现 update-java-alternatives 是更新 Java 的更好方法,因为 update-alternatives 不会更新所有与 Java 相关的替代方案。见 http://askubuntu.com/questions/141791/ (2认同)