在Linux系统中查看Java版本是开发和管理人员日常工作中常见的操作,由于Java存在多种实现(如OpenJDK、Oracle JDK等)和版本号格式(如1.8、11、17等),掌握多种查看方法至关重要,本文将详细介绍不同场景下查看Java版本的命令行工具、环境变量配置、多版本管理以及常见问题排查,帮助读者全面掌握这一技能。

基础命令查看Java版本
最直接的方式是通过命令行调用Java自带的版本查询功能,这是所有Linux系统通用的方法。
使用java -version命令
java -version是最常用的命令,它会输出Java运行时环境(JRE)的详细信息,包括版本号、供应商、Java主版本号等,执行以下命令:
java -version
正常输出示例如下:
openjdk version "11.0.16" 2022-07-19
OpenJDK Runtime Environment Temurin-11.0.16+8 (build 11.0.16+8)
OpenJDK 64-Bit Server VM Temurin-11.0.16+8 (build 11.0.16+8, mixed mode, sharing)
输出结果包含三行信息:第一行是Java版本号(如11.0.16),第二行是运行时环境(如Temurin是Eclipse Adoptium提供的开源实现),第三行是虚拟机类型和模式,若系统未安装Java或环境变量未配置,会提示“command not found”。
使用javac -version检查编译器版本
Java开发不仅需要运行时环境(JRE),还需要开发工具包(JDK)中的编译器javac,通过javac -version可以确认JDK是否完整安装,版本号通常与java -version一致:
javac -version
输出示例:
javac 11.0.16
若javac命令不可用,说明当前安装的可能是仅包含JRE的Java环境,而非完整的JDK。
通过环境变量定位Java安装路径
有时需要确认Java的具体安装路径或配置来源,此时可通过环境变量JAVA_HOME和PATH进行排查。
检查JAVA_HOME环境变量
JAVA_HOME是许多Java应用(如Tomcat、Maven)依赖的环境变量,指向JDK的安装根目录,使用echo命令查看:
echo $JAVA_HOME
若输出类似/usr/lib/jvm/java-11-openjdk-amd64,则说明JAVA_HOME已配置,若为空或未定义,可能需要手动配置(通常在~/.bashrc或/etc/profile文件中添加)。

检查PATH中的Java路径
PATH环境变量决定了系统在哪些目录中查找可执行文件,通过which或whereis命令可以定位java命令的实际路径:
which java
或
whereis java
输出示例:
/usr/bin/java
若java命令位于/usr/bin/java,可通过ls -l /usr/bin/java查看其指向的真实路径(可能是软链接):
ls -l /usr/bin/java
输出类似:
lrwxrwxrwx 1 root root 20 8月 10 10:30 /usr/bin/java -> /etc/alternatives/java
进一步跟踪软链接:
ls -l /etc/alternatives/java
最终指向实际的JDK安装目录,如/usr/lib/jvm/java-11-openjdk-amd64/bin/java。
处理多Java版本环境
Linux系统可能同时安装多个Java版本(如Java 8和Java 11),此时需要通过工具切换或指定版本查询。
使用update-alternatives管理版本(Debian/Ubuntu系统)
基于Debian的系统(如Ubuntu)提供update-alternatives工具管理多版本Java,查看当前已安装的Java版本:
update-alternatives --display java
输出示例:

java - 自动模式
最佳版本 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
优先级 1111
路径 /usr/bin/java
次要版本 2 个
版本
1
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1111 手动模式
2
/usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 自动模式
若需切换版本,使用:
sudo update-alternatives --config java
根据提示选择版本编号即可。
使用alternatives命令(RHEL/CentOS系统)
RedHat系列系统(如CentOS)同样支持alternatives,命令与Debian类似:
sudo alternatives --config java
手动指定Java路径
若未使用alternatives,可通过临时或永久指定路径使用特定版本Java:
- 临时指定(当前终端有效):
export JAVA_HOME=/path/to/jdk-11 export PATH=$JAVA_HOME/bin:$PATH java -version
- 永久指定(修改配置文件):
在~/.bashrc或/etc/profile中添加上述export命令,执行source ~/.bashrc或source /etc/profile使配置生效。
验证Java开发工具包(JDK)完整性
确认Java版本后,需验证JDK是否包含开发所需的工具(如jar、javadoc等),通过ls命令列出JDK的bin目录:
ls $JAVA_HOME/bin
正常输出应包含javac(编译器)、jar(打包工具)、javadoc(文档生成工具)等文件,若缺少关键工具,说明当前安装的可能是JRE而非JDK,需重新安装JDK。
常见问题排查
提示“command not found”
- 原因:Java未安装或环境变量未配置。
- 解决:
- 安装Java(以Ubuntu为例):
sudo apt update sudo apt install openjdk-11-jdk
- 或手动下载JDK并配置
JAVA_HOME与PATH。
- 安装Java(以Ubuntu为例):
java -version与javac -version版本不一致
- 原因:
JAVA_HOME或PATH配置错误,导致运行时与编译器版本不匹配。 - 解决:检查
JAVA_HOME是否指向正确的JDK目录,确保PATH中$JAVA_HOME/bin优先于其他Java路径。
多版本Java切换无效
- 原因:未正确使用
update-alternatives或alternatives,或配置文件未更新。 - 解决:重新运行
update-alternatives --config java选择版本,并检查~/.bashrc中的JAVA_HOME是否与当前版本一致。
在Linux系统中查看Java版本是基础且重要的技能,通过java -version可快速获取版本信息,结合环境变量和update-alternatives工具可管理多版本环境,遇到问题时,需逐步排查安装状态、环境变量配置及工具完整性,掌握这些方法不仅能提升日常工作效率,还能为Java应用开发与部署奠定坚实基础。

















