Java 如何验证RHEL RedHatLinux机器上的哪个openjdk发行版供应商?
在使用java-version进行检查时,将输出作为Java 如何验证RHEL RedHatLinux机器上的哪个openjdk发行版供应商?,java,redhat-openjdk,Java,Redhat Openjdk,在使用java-version进行检查时,将输出作为 openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode) 希望确保此openjdk二进制文件来自oracle或redhat。 在JMX VM摘要页面上检查时,它会将供应商名称显示为“Oracle Corporation”。这是否意味着
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
希望确保此openjdk二进制文件来自oracle或redhat。
在JMX VM摘要页面上检查时,它会将供应商名称显示为“Oracle Corporation”。这是否意味着它的oracle提供了openjdk发行版
RedHat OpenJDK发行版的供应商名称应该是什么?OpenJDK来自oracle。我认为redhat只是将openjdk的二进制文件放在了他们的存储库中。所以供应商名称是oracle。openjdk来自oracle。我认为redhat只是将openjdk的二进制文件放在了他们的存储库中。因此,供应商名称是oracle。oracle jdk被命名为热点 $java-版本 java版本“1.8.0_31” Java(TM)SE运行时环境(build 1.8.0_31-b13) Java HotSpot(TM)64位服务器虚拟机(构建25.31-b07,混合模式) 非oracle jdk $java-版本 openjdk版本“1.8.0_191” OpenJDK运行时环境(build 1.8.0_191-b12) OpenJDK 64位服务器虚拟机(构建25.191-b12,混合模式)Oracle jdk被命名为热点 $java-版本 java版本“1.8.0_31” Java(TM)SE运行时环境(build 1.8.0_31-b13) Java HotSpot(TM)64位服务器虚拟机(构建25.31-b07,混合模式) 非oracle jdk $java-版本 openjdk版本“1.8.0_191” OpenJDK运行时环境(build 1.8.0_191-b12)
OpenJDK 64位服务器虚拟机(build 25.191-b12,混合模式)一般来说,Oracle版本中的java版本
java version ...
而不是
openjdk version ....
不幸的是,java.vendor
系统属性存在兼容性问题。如果不(可能)中断用户,则无法更改它
例如,一旦中断eclipse,将该属性从Sun
更改为Oracle
:
因此,OpenJDK分销商在更改这些供应商属性时非常谨慎。几乎所有人都会坚持几乎所有系统属性的默认值
如果您已经在RHEL上安装了OpenJDK,并且正在使用java-*-OpenJDK
包,那么这些包已经构建并由Red Hat维护。通过使用rpm,您可以了解该软件包是什么:
rpm -qf $(readlink -f $(which java))
如果您看到
java-1.8.0-openjdk-headless
,这就是Red Hat维护的软件包。一般来说,Oracle版本中的java-version
java version ...
而不是
openjdk version ....
不幸的是,java.vendor
系统属性存在兼容性问题。如果不(可能)中断用户,则无法更改它
例如,一旦中断eclipse,将该属性从Sun
更改为Oracle
:
因此,OpenJDK分销商在更改这些供应商属性时非常谨慎。几乎所有人都会坚持几乎所有系统属性的默认值
如果您已经在RHEL上安装了OpenJDK,并且正在使用java-*-OpenJDK
包,那么这些包已经构建并由Red Hat维护。通过使用rpm,您可以了解该软件包是什么:
rpm -qf $(readlink -f $(which java))
如果您看到
java-1.8.0-openjdk-headless
,这就是Red Hat维护的软件包。谢谢@globe admin,但是我相信RedHat不仅提供原始openjdk二进制文件,还提供了他们的版本,根据他们的支持政策,在需要时可能/将有安全补丁/更新。redhat目前正在提供开放jdk。Fedora、Oracle Linux、Red Hat Enterprise Linux等。在命令行上键入:$su-c“yum install java-1.8.0-openjdk”java-1.8.0-openjdk包只包含java运行时环境。如果您想开发Java程序,那么请安装Java-1.8.0-openjdk-devel包。该链接明确指出,redhat将为其订阅客户端独立支持openjdk二进制文件。这意味着,虽然oracle在jdk.java.net上提供的openjdk原始源代码/二进制文件可能存在尚未修复的安全问题,但RedHat/Azul/等供应商将对其发行版进行修复,他们可能/将在何时合并到openjdk,但没有授权人,因为openjdk没有支持合同。对于我来说,openjdk作为供应商为Java1.8OpenJDK工作。我必须将其作为供应商插入~/.m2/toolchain.xml中,位置为/toolchains/toolchain/provides/vendor。看看这里:谢谢@globe admin,但是我相信RedHat不仅仅提供原始的openjdk二进制文件,它还提供了他们的版本,根据他们的支持政策,在需要时可能会有安全补丁/更新。redhat目前正在提供开放jdk。Fedora、Oracle Linux、Red Hat Enterprise Linux等。在命令行上键入:$su-c“yum install java-1.8.0-openjdk”java-1.8.0-openjdk包只包含java运行时环境。如果您想开发Java程序,那么请安装Java-1.8.0-openjdk-devel包。该链接明确指出,redhat将为其订阅客户端独立支持openjdk二进制文件。这意味着,虽然oracle在jdk.java.net上提供的openjdk原始源代码/二进制文件可能存在尚未修复的安全问题,但RedHat/Azul/等供应商将对其发行版进行修复,他们可能/将在何时合并到openjdk,但没有授权人,因为openjdk没有支持合同。对于我来说,openjdk作为供应商为Java1.8OpenJDK工作。我必须将其作为供应商插入~/.m2/toolchain.xml中,位置为/toolchains/toolchain/provides/vendor。请看这里: