是否有正式的“正确”方法在OpenJDK的RedHat系统上定义JAVA_HOME?

与许多其他系统一样,RedHat系统及其衍生产品(如CentOS和Fedora)使用替代机制来支持使用不同的主要版本的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.

解决方法:

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

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

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

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

显然不是“哪个是官方标准选择”的答案,但我认为这也可能有所帮助.此外,这显然是我的意见,评论太长了.

以下也可能很有趣:

> Find JAVA_HOME and set it on RHEL(包含an answer指向:JBoss EAP Installation Guide – Install OpenJDK,它也提到设置JAVA_HOME,但保持打开状态,你应该使用哪一个.它只是提到它可能安装的路径)

上一篇:相机标定 matlab opencv ROS三种方法标定步骤(3)


下一篇:垃圾收集器如何在PHP中工作