可通过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项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
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.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 为主、多属性交叉验证。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










