在Ubuntu系统上确定正确的路径JAVA_HOME
有点复杂,因为它使用替代方法。在我的机器上,这就是替代方案在到达实际的 java 或 javac 之前创建至少两个间接级别的方式。
usr/bin/javac -> /etc/alternatives/
/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac
如果我设置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 捆绑在一起的其他工件(例如安全策略文件等)?如果前者是真的,那么我觉得我们可以使用/usr
for JAVA_HOME
,但如果后者是真的,那么我认为JAVA_HOME
正确使用的唯一方法是牺牲替代功能。