与其他许多系统一样,RedHat系统及其派生版本(例如CentOS和Fedora)也使用alternatives
机制来支持OpenJDK不同主要版本的使用。这将导致有很多候选对象作为JAVA_HOME环境变量的值,例如:
/etc/alternatives/jre
/etc/alternatives/java_sdk
/etc/alternatives/java_sdk_1.x.0
/etc/alternatives/java_sdk_openjdk
/usr/lib/jvm/java
/usr/lib/jvm/java-1.x.0
这些是否被视为官方的标准选择?请注意,我知道名称中包含或不包含Java版本的选择之间的区别。我还自觉地省略了包含次要版本信息的名称,因为每次更新后都需要对其进行修改。
顺便说一下,以上所有都是符号链接。实际的安装目录位于/usr/lib/jvm
中,并在名称中包含特定版本。例如java-1.8.0-openjdk-1.8.0.131-0.b11.el6_9.x86_64
。
答案 0 :(得分:2)
我认为这取决于用例/您的个人使用情况,例如默认情况下,我会将JAVA_HOME
指向当前的JRE
(我认为是/etc/alternatives/jre
)
在我的开发机器上,我可以让它指向当前的SDK
。
也许我所有部署的软件都依赖于某些特定的Java版本,所以我将JAVA_HOME
指向该安装版本。
在大多数情况下 ,我根本不想设置它。相反,我希望程序失败,因为我没有指定要使用的变体。
显然不是“这是官方标准选择”的答案,但我认为这可能也会有所帮助。此外,这显然是我的观点,并且评论太久了。
以下内容可能也很有趣:
JAVA_HOME
,但将其保持打开状态,您应该使用该设置。它仅提及路径可能安装在哪里)