java -version
可查看当前默认JDK版本,使用update-alternatives --list java
可列出所有已安装JDK路径及其版本,javac -version
则用于验证JDK编译器版本。在Linux系统中,查看JDK(Java Development Kit)版本是开发者或系统管理员常见的需求,用于确保Java环境正确配置、兼容应用程序或调试问题,JDK包含Java运行时环境(JRE)和开发工具(如编译器),因此查看版本能帮助确认安装的Java类型(如OpenJDK或Oracle JDK)及其详细信息,以下方法基于标准Linux命令行操作,适用于大多数发行版(如Ubuntu、CentOS、Debian),操作前,请确保已安装JDK;如果未安装,可使用包管理器(如apt
或yum
)安装OpenJDK。
方法1:使用java -version
命令(查看Java运行时版本)
这是最直接的方法,显示Java运行时环境(JRE)的版本,JRE是JDK的一部分,适用于所有JDK安装。
- 打开终端:在Linux桌面环境中,按
Ctrl+Alt+T
快捷键启动终端;或通过应用程序菜单找到“终端”。 - 输入命令:
java -version
- 查看输出:命令会返回JDK的版本信息、供应商和构建详情。
openjdk version "11.0.20" 2025-07-18 OpenJDK Runtime Environment (build 11.0.20+8-post-Ubuntu-0ubuntu122.04) OpenJDK 64-Bit Server VM (build 11.0.20+8-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
- 解读:第一行显示主版本(如11.0.20),第二行是运行时环境,第三行是虚拟机详情,如果输出中包含”OpenJDK”,表示是开源版本;”Java(TM)”则表示Oracle JDK。
- 注意:如果命令返回
bash: java: command not found
,说明JDK未安装或路径未设置,需先安装JDK(如sudo apt install openjdk-11-jdk
)。
方法2:使用javac -version
命令(查看Java编译器版本)
javac
是JDK的编译器工具,此命令专门确认JDK(而非仅JRE)是否安装,并显示编译器版本。
- 在终端中输入:
javac -version
- 查看输出:返回简洁的编译器版本号。
javac 11.0.20
- 解读:输出直接显示版本(如11.0.20),确认JDK已安装,如果输出错误如
command not found
,表示只安装了JRE(运行时环境),而非完整JDK,需安装JDK包(如Ubuntu中使用sudo apt install default-jdk
)。
- 解读:输出直接显示版本(如11.0.20),确认JDK已安装,如果输出错误如
方法3:检查环境变量和路径(辅助确认版本)
如果系统安装了多个JDK版本,可通过环境变量和文件路径进一步验证。
-
查看
JAVA_HOME
变量:JAVA_HOME
通常指向JDK安装目录,输入:echo $JAVA_HOME
输出如
/usr/lib/jvm/java-11-openjdk-amd64
,表示JDK路径,结合ls
命令查看具体版本:ls -l $JAVA_HOME/bin/java
输出会显示符号链接的详细信息,指向实际版本。
-
使用
which
或whereis
命令:查找java
或javac
的路径,再检查版本。which java # 输出路径,如/usr/bin/java /usr/bin/java -version # 直接运行路径下的命令查看版本
或:
whereis javac # 显示所有相关路径
方法4:管理多个JDK版本(使用update-alternatives
)
在Debian/Ubuntu等系统中,如果安装了多个JDK(如Java 8和Java 11),可用update-alternatives
工具切换和查看当前版本。
- 查看所有安装的Java版本:
update-alternatives --config java
- 终端会列出选项,
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode 2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
- 解读:星号(*)表示当前默认版本(如Java 11),输入数字选择其他版本,或直接查看优先级和路径。
- 类似地,检查编译器版本:
update-alternatives --config javac
常见问题与解决
- 命令未找到(command not found):表示JDK未安装,安装命令示例:
- Ubuntu/Debian:
sudo apt update && sudo apt install default-jdk
- CentOS/RHEL:
sudo yum install java-11-openjdk-devel
安装后,重新运行版本命令。
- Ubuntu/Debian:
- 版本不一致:如果
java -version
和javac -version
输出不同,可能路径冲突,运行update-alternatives --config java
统一设置。 - 权限问题:普通用户可能无法访问某些路径,使用
sudo
或以root用户操作。 - OpenJDK vs Oracle JDK:输出中会注明供应商,OpenJDK是开源免费版,Oracle JDK需商业许可;两者命令相同。
为什么需要查看JDK版本?
- 兼容性:确保应用程序(如Tomcat或Spring Boot)与JDK版本匹配。
- 安全更新:旧版本可能有漏洞,定期检查可及时升级。
- 开发需求:编译代码时需特定JDK(如Java 8或11)。
- 系统维护:多版本管理避免冲突,提高效率。
通过以上方法,您可以快速准确地查看Linux系统中的JDK版本,建议定期验证版本,以保持环境健康,操作基于标准Linux实践,确保安全可靠。
引用说明:本文内容参考Oracle官方Java文档、OpenJDK社区指南及Linux手册页(man pages),确保信息准确性和权威性,具体命令细节可查阅man java
或访问OpenJDK官网。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/24417.html