问题描述
在Ubuntu上,可以同时具有多个JVM。使用update-alternatives
选择了默认值。但是由于debian policy,因此未设置JAVA_HOME
环境变量。
我正在编写启动器脚本(bash),用于启动Java应用程序。该Java应用程序需要JAVA_HOME
环境变量。那么,如何获取update-alternatives
当前选择的JVM的路径?
最佳方法
对于JRE,这样的事情应该可以解决问题:
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
次佳方法
danadam的解决方案可以轻松地根据需要检索JDK(即不是JRE)路径:
JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
-
查找JDK(而不是JRE)中包含的javac Java编译器(而不是Java)。
-
没有尾随/(由sed s:/bin …代替s:bin …)
第三种方法
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
在.bashrc
中对我来说很方便。
第四种方法
因此,您是说此命令对您没有任何作用?
sudo update-alternatives --config java
第五种方法
我安装了Java
sudo apt-get install openjdk-7-jre-headless
然后找到位置
ls -al /etc/alternatives/java