Java 实例 – 如何查看当前 Java 运行的版本?(保姆级教程)

Java 实例 – 如何查看当前 Java 运行的版本?

在学习 Java 的过程中,你是否遇到过这样的情况:明明在电脑上安装了 Java,但运行程序时却提示“找不到或无法加载主类”?或者,你不确定当前系统中运行的是 Java 8 还是 Java 17?这些问题,往往都源于对当前 Java 环境版本的不清晰。而解决这一切的第一步,就是准确查看当前 Java 运行的版本

这看似简单的操作,实则是 Java 开发中的“基本功”。就像你开车前要检查油量、胎压一样,写 Java 代码前,也得先确认你用的是哪个版本的 Java。今天,我们就来系统梳理几种实用、可靠的方法,帮你快速掌握“如何查看当前 Java 运行的版本?”这个核心技能。


通过命令行查看 Java 版本

命令行(Command Line)是开发者最直接、最高效的操作方式。无论你是使用 Windows、macOS 还是 Linux,只要安装了 Java,基本都能通过命令行查看版本信息。

打开你的终端或命令提示符(Windows 下是 CMD 或 PowerShell,macOS/Linux 下是 Terminal),输入以下命令:

java -version

执行后,你会看到类似如下的输出:

openjdk version "17.0.8" 2023-03-21
OpenJDK Runtime Environment (build 17.0.8+10-LTS-202)
OpenJDK 64-Bit Server VM (build 17.0.8+10-LTS-202, mixed mode)

注释java -version 是 Java 提供的标准命令,用于打印当前运行环境的 Java 版本信息。它不会启动 Java 程序,只返回版本号和运行时环境详情。这是最常用、最推荐的方式。

命令行输出解析

输出内容 含义说明
openjdk version "17.0.8" 当前 Java 的版本号,这里是 OpenJDK 17.0.8
OpenJDK Runtime Environment 运行时环境名称,OpenJDK 是 Java 的开源实现
OpenJDK 64-Bit Server VM 虚拟机类型,64 位服务端虚拟机,适合生产环境

小贴士:如果你看到的是 Java(TM) SE Runtime Environment,说明你使用的是 Oracle 官方版本的 Java,而非 OpenJDK。两者功能基本一致,但 Oracle 版本在某些商业场景下需要许可证。


查看 Java 安装路径与版本的完整信息

有时候,我们不仅想知道版本号,还想确认 Java 安装在哪个路径下。这时,可以使用以下命令:

where java

在 Windows 系统中,where 命令会列出所有匹配 java 的可执行文件路径。例如:

C:\Program Files\Java\jdk-17.0.8\bin\java.exe
C:\Program Files\Java\jdk-11.0.15\bin\java.exe

注释where java 用于查找系统中所有名为 java.exe 的可执行文件路径。如果存在多个 Java 版本,说明你可能安装了多个 JDK,需要检查环境变量 PATH 是否正确配置。

在 macOS 或 Linux 系统中,使用 which java

which java

输出示例:

/usr/bin/java

但这个路径可能只是指向一个符号链接。要查看实际安装路径,可以进一步使用:

readlink -f $(which java)

注释readlink -f 会解析符号链接,返回真实文件路径。这样你就能准确知道当前运行的是哪个 JDK 安装目录。


通过 Java 程序代码查看版本

如果你正在开发一个 Java 应用,或者想在程序运行时动态获取版本信息,可以通过代码实现。这种方式特别适合做系统兼容性判断或日志记录。

创建一个简单的 Java 文件 CheckJavaVersion.java,内容如下:

public class CheckJavaVersion {
    public static void main(String[] args) {
        // 获取当前 Java 运行时的版本号
        String javaVersion = System.getProperty("java.version");
        
        // 获取 Java 运行时环境名称
        String javaRuntimeName = System.getProperty("java.runtime.name");
        
        // 获取 Java 安装路径
        String javaHome = System.getProperty("java.home");
        
        // 输出所有版本信息
        System.out.println("当前 Java 版本: " + javaVersion);
        System.out.println("运行时环境: " + javaRuntimeName);
        System.out.println("Java 安装目录: " + javaHome);
    }
}

注释

  • System.getProperty("java.version"):获取 Java 运行时的版本号,如 "17.0.8"
  • System.getProperty("java.runtime.name"):获取运行时环境名称,如 "OpenJDK Runtime Environment"
  • System.getProperty("java.home"):获取 JDK 或 JRE 的安装路径
  • 所有这些属性都属于 Java 的系统属性,可通过 System.getProperty() 动态获取

编译并运行:

javac CheckJavaVersion.java
java CheckJavaVersion

输出结果示例:

当前 Java 版本: 17.0.8
运行时环境: OpenJDK Runtime Environment
Java 安装目录: /usr/lib/jvm/openjdk-17

小技巧:在实际项目中,你还可以将这些信息打印到日志文件,方便排查环境问题。


环境变量配置与版本冲突排查

很多初学者在安装多个 Java 版本后,会遇到“明明装了 Java 17,但 java -version 显示 Java 8”的问题。这通常是因为环境变量 PATH 配置不当。

检查 PATH 变量

在命令行中输入:

echo $PATH

在 Windows 上使用:

echo %PATH%

查看输出中是否包含你期望的 JDK 路径,例如:

C:\Program Files\Java\jdk-17.0.8\bin

如果发现路径顺序错误,比如 Java 8 的路径排在前面,系统就会优先使用旧版本。

解决方法

  1. 打开系统环境变量设置(Windows:系统属性 → 高级 → 环境变量)
  2. 编辑 PATH 变量,将你希望使用的 JDK 路径移到最前面
  3. 重启终端,再次运行 java -version 验证

形象比喻:环境变量 PATH 就像你家的门牌号列表。如果你把旧门牌(Java 8)放在最前面,快递员(系统)就会先送旧包裹,哪怕你新装了更高级的门牌(Java 17)。


常见问题与解决方案

问题现象 可能原因 解决方案
java: command not found Java 未安装或 PATH 未配置 安装 JDK 并添加 JAVA_HOMEPATH
java -version 显示旧版本 多个 JDK 安装,PATH 顺序错误 调整 PATH 顺序,优先指向目标 JDK
程序运行报错“不支持的主版本号” 使用高版本 Java 编译,低版本运行 确保运行环境版本 ≥ 编译版本
System.getProperty("java.version") 返回错误值 JVM 启动参数被覆盖 检查是否设置了 -Djava.version

提示:Java 8 之后的版本引入了“主版本号”机制。例如,Java 17 的主版本号是 61,如果用 Java 11 运行 Java 17 编译的类文件,会报错。因此,版本一致性至关重要。


实用建议与最佳实践

  1. 始终使用 java -version 作为第一道检查:它快、准、无需编写代码。
  2. 在项目中打印版本信息:用于日志、监控或兼容性提示。
  3. 管理多个 JDK 时,使用工具如 jenv(macOS/Linux)或 SDKMAN!:可一键切换 Java 版本。
  4. 保持开发与生产环境版本一致:避免“在我机器上能跑”的问题。
  5. 定期检查 Java 版本更新:新版本通常带来性能提升和安全修复。

总结

“Java 实例 – 如何查看当前 Java 运行的版本?”这个问题,看似基础,实则贯穿整个开发流程。从命令行到代码,从环境变量到版本管理,每一个环节都影响着你的开发效率和程序稳定性。

无论你是初学者,还是已经有一定经验的开发者,掌握这些方法,都能让你在遇到“版本不匹配”“找不到主类”等问题时,迅速定位根源,高效解决。记住:清晰的环境认知,是写出稳定代码的第一步

下次你运行 Java 程序前,不妨先问一句:“我当前运行的是哪个 Java 版本?”——这个小小的习惯,会让你少走很多弯路。