登录
首页 >  文章 >  java教程

如何查看JavaJDK版本及验证方法

时间:2026-02-13 08:25:04 291浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《如何查看Java JDK版本及确认方法》,这篇文章主要讲到等等知识,如果你对文章相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

最直接方式是运行 java -version,但结果取决于 PATH 顺序;用 java -XshowSettings:properties -version | grep "java.home" 可查实际路径;java 和 javac 版本可能不一致,需分别验证。

在Java中如何查看当前使用的JDK版本_Java版本确认方法解析

在命令行中快速确认JDK版本

最直接的方式是运行 java -version,它会输出当前 java 命令指向的 JDK 版本(包括 vendor 和构建信息)。但要注意:这个结果取决于 PATH 环境变量中哪个 java 可执行文件排在前面,不一定是你预期的那个 JDK。

如果想确认具体路径,加 -XshowSettings:properties 参数:

java -XshowSettings:properties -version 2>&1 | grep "java.home"

输出类似:java.home = /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home —— 这才是实际生效的 JDK 安装根目录。

  • java -version 显示的是运行时版本,可能和 javac 不一致(尤其当 JAVA_HOME 未设或 PATH 混杂多个 JDK 时)
  • macOS 上通过 /usr/libexec/java_home -V 可列出所有已安装 JDK,并标出当前默认项
  • Windows 用户可用 where java 查看 PATH 中第一个匹配位置

在 Java 程序中获取运行时 JDK 版本信息

代码里用 System.getProperty("java.version") 最常用,但它返回的是 JRE 规范版本号(如 "17.0.1"),不是完整构建版本。需要更详细信息时,可补充读取:

  • System.getProperty("java.vendor") —— 如 "Eclipse Adoptium""Oracle Corporation"
  • System.getProperty("java.home") —— 实际运行 JDK 的根路径
  • System.getProperty("java.runtime.version") —— 更精确的构建 ID(如 "17.0.1+12-LTS"

注意:从 Java 9 开始,java.version 格式改为语义化版本(如 "17.0.1"),而旧版(8 及以前)是 "1.8.0_351"。若需兼容判断,建议优先解析 java.specification.version(如 "17")。

区分 javac 编译器版本与运行时版本

一个常见误区是认为 java -versionjavac -version 总是一致。实际上,它们可以来自不同 JDK —— 尤其当 PATHjavac 路径靠前,而 java 来自另一个位置时。

  • 务必分别执行 java -versionjavac -version 对比输出
  • IDE(如 IntelliJ)可能覆盖 JAVA_HOME 或使用内置 JDK,此时终端命令结果 ≠ IDE 内编译/运行环境
  • Maven 项目中,maven.compiler.sourcemaven.compiler.target 只控制字节码级别,不影响实际运行所用的 JDK

检查 JAVA_HOME 是否生效及常见陷阱

JAVA_HOME 是很多工具(如 Tomcat、Gradle、Maven)依赖的环境变量,但它本身**不会自动影响 PATH 中的 javajavac** —— 那些命令是否被正确调用,只看 PATH 顺序。

  • 设置 JAVA_HOME 后,必须确保 $JAVA_HOME/bin(Linux/macOS)或 %JAVA_HOME%\bin(Windows)在 PATH 中且位置合理
  • macOS Catalina 及以后,shell 默认为 zsh,~/.bash_profile 中的设置可能不生效,应改写入 ~/.zshrc
  • Docker 容器中常直接指定 OpenJDK 镜像标签(如 eclipse-temurin:17-jre),此时 JAVA_HOME 通常已预设,但需验证 java -version 输出是否符合预期

真正决定“当前使用哪个 JDK”的,永远是 PATH 查找顺序 + 实际可执行文件路径。其他方式(IDE 设置、构建工具配置)都只是间接影响这一链条的某一段。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>