最可靠的方式是读取Java系统属性,通过System.getProperty("java.version")获取JDK版本,如17.0.8或21.0.3;也可用Actuator的/env端点、启动日志或进程参数验证。

直接在运行中的Spring Boot应用里查JDK版本,最可靠的方式是读取Java系统属性,而不是依赖框架层的抽象。
通过代码打印System属性
在任意可执行的类(如启动类、Controller或工具类)中加入以下代码:
System.out.println("Java版本: " + System.getProperty("java.version"));System.out.println("Java运行时版本: " + System.getProperty("java.runtime.version"));System.out.println("JDK主目录: " + System.getProperty("java.home"));
运行后控制台会输出类似:Java版本: 17.0.8 或 Java版本: 21.0.3,这就是当前实际使用的JDK版本。
通过Actuator的/actuator/env端点
前提是项目已引入spring-boot-starter-actuator并开放了env端点(application.yml中需配置):
management.endpoints.web.exposure.include=env
启动后访问 http://localhost:8080/actuator/env,在返回的JSON中搜索java.version或java.runtime.version字段,值即为运行时JDK版本。
查看启动日志中的JVM信息
Spring Boot启动时默认会在Banner下方打印JVM相关信息,留意控制台开头几行,通常包含:
Java version: 17.0.8, vendor: Oracle Corporation, runtime: /path/to/jdk-17.0.8- 或更简略的:
Starting MyApp using Java 17.0.8 on hostname
该信息由Spring Boot自动采集自System.getProperty,真实反映进程实际使用的JDK。
检查进程绑定的JDK路径
如果应用已运行,可在终端执行:
- Linux/macOS:
ps -ef | grep java,找到启动命令中的-Djava.home=...或java -jar前的JDK路径 - Windows:
tasklist /fi "imagename eq java.exe",再结合WMIC PROCESS WHERE name='java.exe' GET CommandLine查参数
路径末尾的目录名(如jdk-21.0.2或jdk-17.0.8)就是实际运行所用的JDK版本标识。


















