在 Linux 系统中查看 Java 版本有多种方法,具体取决于您需要查看的是哪个 Java 版本(系统默认的、特定环境变量的、或者所有已安装的)。

以下是几种最常用和最有效的方法,从简单到详细排列。
使用 java -version (最常用)
这是最直接、最常用的方法,它会显示当前环境变量 PATH 中指向的 java 命令的版本信息。
打开终端
- 输入以下命令:
java -version
输出示例

你会看到类似下面的输出:
# 示例 1: Oracle JDK openjdk version "17.0.8" 2025-07-18 OpenJDK Runtime Environment (build 17.0.8+7-Ubuntu-122.04) OpenJDK 64-Bit Server VM (build 17.0.8+7-Ubuntu-122.04, mixed mode, sharing) # 示例 2: Adoptium (以前叫 AdoptOpenJDK) openjdk version "11.0.19" 2025-04-18 OpenJDK Runtime Environment Temurin-11.0.19+7 (build 11.0.19+7) OpenJDK 64-Bit Server VM Temurin-11.0.19+7 (build 11.0.19+7, mixed mode, sharing) # 示例 3: Amazon Corretto openjdk version "1.8.0_352" OpenJDK Runtime Environment Corretto-1.8.0_352.08.1 (build 1.8.0_352-b08) OpenJDK 64-Bit Server VM Corretto-1.8.0_352.08.1 (build 25.352-b08, mixed mode)
重要提示:
这个命令显示的是 当前 Shell 会话中 PATH 变量所找到的第一个 java 命令 的版本,如果你配置了 JAVA_HOME 或者修改了 PATH,那么结果会相应改变。
使用 javac -version (查看编译器版本)
这个命令用于查看 Java 编译器 javac 的版本。java 和 javac 的版本应该是一致的,如果它们不一致,说明你的环境配置可能有问题。
javac -version
输出示例:
javac 17.0.8
使用 echo $JAVA_HOME (检查 JAVA_HOME 环境变量)
很多应用程序(如 Tomcat, Maven, Spring Boot 等)通过 JAVA_HOME 环境变量来定位 Java 安装路径,检查这个变量可以确认你期望使用的 Java 版本。
echo $JAVA_HOME
输出示例:
JAVA_HOME 已正确设置,输出会是一个路径:
/usr/lib/jvm/java-17-openjdk-amd64
如何验证 JAVA_HOME 下的版本?
你可以进入 JAVA_HOME/bin 目录,然后执行 java -version 来确保它指向的版本是正确的。
$JAVA_HOME/bin/java -version
查找所有已安装的 Java 版本 (排查多版本问题)
如果你的系统上安装了多个 Java 版本(OpenJDK 8, 11, 17),并且你想查看它们全部,可以使用以下方法。
使用 update-java-alternatives (Debian / Ubuntu / Mint)
这个工具用于管理系统中的 Java 替代版本。
# 列出所有已安装的 Java 版本 update-java-alternatives --list
输出示例:
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64 java-11-openjdk-amd64 1111 /usr/lib/jvm/java-11-openjdk-amd64 java-17-openjdk-amd64 1171 /usr/lib/jvm/java-17-openjdk-amd64
这里的数字代表优先级,数字越大优先级越高。
使用 ls /usr/lib/jvm/ (通用方法)
这是一个非常通用的方法,可以列出 /usr/lib/jvm/ 目录下所有已安装的 Java 虚拟机。
ls /usr/lib/jvm/
输出示例:
java-11-openjdk-amd64 java-17-openjdk-amd64 java-8-openjdk-amd64
使用 alternatives (CentOS / RHEL / Fedora)
在基于 Red Hat 的系统上,update-java-alternatives 通常不可用,需要使用 alternatives 命令。
# 列出所有与 java 相关的替代项 sudo alternatives --config java
执行后,你会看到一个列表,显示所有可用的 Java 版本,并告诉你当前正在使用的是哪个(用 标记)。
使用 which java (查找 Java 命令位置)
这个命令可以告诉你当前 PATH 变量中 java 命令的实际位置,有助于理解为什么 java -version 会显示某个特定的版本。
which java
输出示例:
/usr/bin/java
有时这个路径是一个符号链接,你可以用 ls -l 查看它指向的真实位置:
ls -l /usr/bin/java
输出可能类似于:
lrwxrwxrwx 1 root root 25 May 10 12:34 /usr/bin/java -> /etc/alternatives/java
再查看 /etc/alternatives/java 的链接:
ls -l /etc/alternatives/java
输出会指向你实际安装的 JDK 目录,
lrwxrwxrwx 1 root root 46 May 10 12:35 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-amd64/bin/java
总结与最佳实践
| 命令 | 用途 | 适用场景 |
|---|---|---|
java -version |
查看当前生效的 Java 运行时版本 | 日常开发、部署,最常用 |
javac -version |
查看当前生效的 Java 编译器版本 | 检查 java 和 javac 版本是否匹配 |
echo $JAVA_HOME |
检查 JAVA_HOME 环境变量指向的路径 |
配置应用服务器、构建工具等 |
update-java-alternatives --list |
列出系统中所有已安装的 Java 版本 | 排查多版本冲突,Ubuntu/Debian |
ls /usr/lib/jvm/ |
列出系统中所有已安装的 Java 路径 | 通用方法,快速查看所有安装 |
which java |
查看 java 命令的实际路径 |
理解版本查找机制,排查 PATH 问题 |
推荐工作流:
- 日常使用:直接用
java -version。 - 遇到版本问题:
- 先用
which java和ls -l追踪java命令的真实来源。 - 再用
echo $JAVA_HOME检查环境变量是否设置正确。 - 最后用
update-java-alternatives --list或ls /usr/lib/jvm/查看系统上所有可用的 Java 版本,确认没有版本冲突。
- 先用
