在 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