是否存在使用OpenJDK在RedHat系统上定义JAVA_HOME的官方“正确”方法?

时间:2018-08-06 10:41:02

标签: java centos redhat fedora java-home

与其他许多系统一样,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

1 个答案:

答案 0 :(得分:2)

我认为这取决于用例/您的个人使用情况,例如默认情况下,我会将JAVA_HOME指向当前的JRE(我认为是/etc/alternatives/jre

在我的开发机器上,我可以让它指向当前的SDK

也许我所有部署的软件都依赖于某些特定的Java版本,所以我将JAVA_HOME指向该安装版本。

在大多数情况下 ,我根本不想设置它。相反,我希望程序失败,因为我没有指定要使用的变体。

显然不是“这是官方标准选择”的答案,但我认为这可能也会有所帮助。此外,这显然是我的观点,并且评论太久了。

以下内容可能也很有趣: