确定 JAVA_HOME
的正确路径在 Ubuntu 系统上有点复杂,因为它使用替代方案。在我的机器上,这就是替代方法在到达实际的 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 捆绑在一起的其他工件(例如安全策略 fil 等)?如果是前者,那么我觉得JAVA_HOME
可以用/usr
,如果是后者,那我觉得只能用JAVA_HOME了
正确的做法是牺牲替代功能。
最佳答案
好问题 - 我在 Linux 上使用“替代方案”并且一切都“正常工作” - 我从来没有真正考虑过它。
我相信这就是答案:
JAVA_HOME=/usr/lib/jvm/default-java
1) "alternatives"将符号链接(symbolic link)设置为你的 "真实"Java 当前配置的任何内容
2) 您需要做的就是将 $JAVA_HOME 设置为符号链接(symbolic link)
关于java - 在使用alternatives的Linux系统上,JAVA_HOME的正确路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12085922/