在使用替代方案的Linux系统上,JAVA_HOME的正确路径是什么?

Par*_*rag 9 java java-home

确定正确的路径JAVA_HOMEUbuntu系统上有点复杂,因为它使用了替代方案.在我的机器上,这是替代方案在到达实际的java或javac之前至少创建两个间接层的方式.

usr/bin/javac -> /etc/alternatives/

/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac
Run Code Online (Sandbox Code Playgroud)

如果我设置JAVA_HOME/usr/lib/jvm/jdk1.7,那么我的系统java可能会与指向的java不一致JAVA_HOME,如果我更新替代使用另一个java.

我的问题是,JAVA_HOME在使用替代品的系统上,正确的价值是什么.我倾向于认为JAVA_HOME应该这样做/usr

这样TOMCAT或使用它的任何其他软件都会将"bin"附加到JAVA_HOME并找到它需要的所有可执行文件.

这是JAVA_HOME使用替代品的系统的正确值.大多数软件JAVA_HOME仅用于查找可执行文件,还是使用该值来查找与JDK捆绑在一起的其他工件(例如安全策略文件等)?如果是前者的话,我觉得我们可以使用/usrJAVA_HOME,但如果是后者,那么我想使用的唯一方法JAVA_HOME正确是通过牺牲的替代功能.

pau*_*sm4 5

好问题 - 我在Linux上使用"替代品"而且"一切正常" - 我从来没有真正考虑过它.

我相信这就是答案:

1)"alternative"将符号链接设置为您当前配置的"真正"Java

2)您需要做的就是将$ JAVA_HOME设置为符号链接