如何在 Debian/Ubuntu 上确定 JAVA_HOME?

如何在 Debian/Ubuntu 上确定 JAVA_HOME?

在 Ubuntu 上,可以同时拥有多个 JVM。默认选择的是update-alternatives。但这不会设置JAVA_HOME环境变量,因为Debian 政策

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

答案1

对于 JRE,类似下面的操作应该可以解决问题:

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

答案2

可以轻松采用 danadam 的解决方案来根据需要检索 JDK(即非 JRE)路径:

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • 查找 JDK(但不包含在 JRE)中包含的 javac Java 编译器(而不是 java)。
  • 没有尾随的 / (由 sed s:/bin... 而不是 s:bin... 删除)

答案3

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

对于我来说很.bashrc方便。

答案4

我安装了 Java

sudo apt-get install openjdk-7-jre-headless

然后找到位置

ls -al /etc/alternatives/java

相关内容