可通过java.vendor和java.vm.vendor获取JDK供应商信息:前者表示JRE供应商(如"Oracle Corporation"),后者表示JVM实现方(如"Eclipse Foundation"),二者通常一致,结合java.runtime.name等可精准区分Oracle JDK与OpenJDK衍生版。

可以通过系统属性 java.vendor 和 java.vm.vendor 获取 JDK 供应商信息。
获取基础供应商名称
这两个属性分别表示 Java 运行时环境(JRE)的供应商和 JVM 实现的供应商,大多数情况下两者一致:
- java.vendor:返回 JDK 发行商名称,如 "Oracle Corporation"、"Eclipse Foundation" 或 "Amazon.com Inc."
- java.vm.vendor:返回底层虚拟机实现方,例如使用 GraalVM 时可能为 "GraalVM Community"
推荐的 Java 代码示例
直接读取系统属性即可,无需额外依赖:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
public class JdkVendorInfo {
public static void main(String[] args) {
String vendor = System.getProperty("java.vendor");
String vmVendor = System.getProperty("java.vm.vendor");
String version = System.getProperty("java.version");
String runtimeName = System.getProperty("java.runtime.name");
System.out.println("JDK 供应商: " + vendor);
System.out.println("JVM 供应商: " + vmVendor);
System.out.println("Java 版本: " + version);
System.out.println("运行时名称: " + runtimeName);
}
}
区分主流 JDK 发行版的小技巧
仅靠 java.vendor 有时不够明确(如多个发行版都显示 "Eclipse Foundation"),可结合其他属性辅助判断:
立即学习“Java免费学习笔记(深入)”;
- 检查 java.runtime.name:OpenJDK 通常为 "OpenJDK Runtime Environment",而某些厂商会自定义名称(如 Amazon Corretto 显示 "Corretto-17 Runtime Environment")
- 查看 java.home 路径:路径中常含厂商名,如 "/usr/lib/jvm/amazon-corretto-17" 或 "/opt/java/zulu17.42.19-ca-jdk17.0.6-linux_x64"
- 注意 java.vendor.url(已废弃但部分 JDK 仍保留)或 java.vm.name(如 "OpenJ9" 表明是 Eclipse OpenJ9)
注意事项
这些属性在 JVM 启动时由启动参数或内置配置设定,无法运行时修改。不同 JDK 构建版本(如 Oracle JDK、Adoptium、Zulu、Liberica)可能对同一属性返回略有差异,建议以 java.vendor 为主、多属性交叉验证。

















