最直接有效的方式是运行命令 java -version,重点看输出中的 vendor(厂商)和 VM 名称;程序中可通过 System.getProperty("java.vendor") 和 System.getProperty("java.vm.name") 动态获取发行商与虚拟机信息。

最直接有效的方式是运行命令 java -version,重点看输出中的两行关键信息:vendor(厂商)和 VM 名称。
用命令行快速识别发行商
在终端或命令提示符中执行:
-
java -version—— 查看基础输出,关注java.vendor和java.vm.name字段 -
java -XshowSettings:properties -version—— 展示全部系统属性,可明确看到java.vm.vendor、java.vendor.url等完整厂商标识
典型输出对比:
- Oracle JDK:
java.vendor = Oracle Corporation,java.vm.name = Java HotSpot(TM) 64-Bit Server VM - Eclipse Temurin(OpenJDK):
java.vendor = Eclipse Foundation,java.vm.name = OpenJDK 64-Bit Server VM - Amazon Corretto:
java.vendor = Amazon.com Inc.,java.vm.name = OpenJDK 64-Bit Server VM
在Java程序中动态获取
写一个简单类,运行时读取系统属性:
-
System.getProperty("java.vendor")→ 返回发行商名称,如"Eclipse Foundation" -
System.getProperty("java.vm.vendor")→ 通常与上者一致,部分构建版可能略有差异 -
System.getProperty("java.home")→ 可辅助判断安装来源(路径名有时含厂商线索,如jdk-17.0.2+8-LTS-17.0.2+8-LTS或temurin-17.0.2+9)
检查正在运行的Java进程
若需确认某个具体应用使用的JDK厂商(比如IDE或Tomcat),可结合进程ID查看:
- 先用
jps -l列出Java进程及其主类 - 再执行
jcmd {pid} VM.system_properties | findstr "vendor"(Windows)或grep vendor(Linux/macOS) - 重点关注
java.vm.specification.vendor和java.vm.vendor
注意易混淆点
别只看安装包文件名或下载页面标题——“JDK 17”可能是 Oracle 官方二进制,也可能是 Adoptium 编译的 OpenJDK 构建版。实际运行时的 java.vendor 才是法律与技术支持责任主体的准确依据。许可证类型(如 NFT、GPLv2+CE、BSD)、安全更新节奏、LTS 支持周期,都由这个 vendor 决定。

















