杰瑞科技汇

Linux下如何查看Java版本?

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

Linux下如何查看Java版本?-图1
(图片来源网络,侵删)

以下是几种最常用和最有效的方法,从简单到详细排列。


使用 java -version (最常用)

这是最直接、最常用的方法,它会显示当前环境变量 PATH 中指向的 java 命令的版本信息。

打开终端

  1. 输入以下命令:
    java -version

输出示例

Linux下如何查看Java版本?-图2
(图片来源网络,侵删)

你会看到类似下面的输出:

# 示例 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 的版本。javajavac 的版本应该是一致的,如果它们不一致,说明你的环境配置可能有问题。

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 编译器版本 检查 javajavac 版本是否匹配
echo $JAVA_HOME 检查 JAVA_HOME 环境变量指向的路径 配置应用服务器、构建工具等
update-java-alternatives --list 列出系统中所有已安装的 Java 版本 排查多版本冲突,Ubuntu/Debian
ls /usr/lib/jvm/ 列出系统中所有已安装的 Java 路径 通用方法,快速查看所有安装
which java 查看 java 命令的实际路径 理解版本查找机制,排查 PATH 问题

推荐工作流:

  1. 日常使用:直接用 java -version
  2. 遇到版本问题
    • 先用 which javals -l 追踪 java 命令的真实来源。
    • 再用 echo $JAVA_HOME 检查环境变量是否设置正确。
    • 最后用 update-java-alternatives --listls /usr/lib/jvm/ 查看系统上所有可用的 Java 版本,确认没有版本冲突。
分享:
扫描分享到社交APP
上一篇
下一篇