菜鸟科技网

Centos系统如何查看Java版本?

在CentOS系统中查看Java版本是日常开发和运维工作中常见的操作,尤其当系统安装了多个Java版本或需要确认当前Java环境时,掌握正确的命令至关重要,以下是几种常用的查看Java版本的方法,涵盖不同场景和工具,帮助您全面了解系统中的Java版本信息。

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

使用java -version命令查看当前默认Java版本

这是最基础也是最常用的方法,通过Java自带的命令行工具直接输出当前使用的Java版本信息,打开终端,输入以下命令:

java -version

执行后,系统会返回类似以下的信息:

openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

openjdk version后面的数字即为Java版本号(如1.8.0_312),对应Java 8,如果系统中未安装Java或未配置环境变量,命令会提示“bash: java: command not found”,需要注意的是,该命令仅显示通过JAVA_HOME或系统路径优先调用的Java版本,若存在多个Java版本,可能需要结合其他命令进一步确认。

使用javac -version查看Java编译器版本

Java编译器(javac)的版本通常与Java运行时环境(JRE)版本一致,因此可以通过该命令间接验证Java版本,命令如下:

Centos系统如何查看Java版本?-图2
(图片来源网络,侵删)
javac -version

输出示例:

javac 1.8.0_312

如果java -versionjavac -version显示的版本不一致,可能表明系统环境配置存在问题,例如JAVA_HOME指向错误或路径冲突。

检查JAVA_HOME环境变量

JAVA_HOME是Java运行时依赖的核心环境变量,明确其指向的路径有助于确认当前Java版本,通过以下命令查看:

echo $JAVA_HOME

输出结果通常为Java安装的根目录,如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-0.el7_9.x86_64,若未设置JAVA_HOME,命令可能返回空值,可以结合ls -l命令查看该路径下的版本信息:

Centos系统如何查看Java版本?-图3
(图片来源网络,侵删)
ls -l $JAVA_HOME/bin/java

输出会显示Java可执行文件的符号链接或实际文件,通过链接目标可进一步确认版本。

使用update-alternatives管理多版本Java(适用于基于RPM的系统)

CentOS系统通常使用update-alternatives工具管理多版本软件的切换,若Java通过该工具安装,可通过以下命令查看所有已配置的Java版本:

update-alternatives --display java

输出示例:

java - 自动模式
  最佳版本 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-0.el7_9.x86_64/jre/bin/java
  候选项  /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-0.el7_9.x86_64/jre/bin/java
  优先级  1800
  候选项  /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-0.el7_9.x86_64/bin/java
  优先级  1100

“最佳版本”即为当前系统默认使用的Java版本,若需切换版本,可使用:

sudo update-alternatives --config java

然后根据提示选择所需的Java版本。

查看/usr/bin/java的符号链接

在CentOS中,/usr/bin/java是Java命令的默认入口,通常指向实际安装的Java路径,通过以下命令查看:

ls -l /usr/bin/java

输出示例:

lrwxrwxrwx 1 root root 47 10月 26 15:30 /usr/bin/java -> /etc/alternatives/java

/etc/alternatives/java又会通过update-alternatives指向具体的Java版本,因此该命令可间接确认当前Java版本。

使用which java定位Java可执行文件路径

which命令用于显示命令的完整路径,适用于快速定位Java安装位置:

which java

输出通常为/usr/bin/java/usr/local/bin/java等,结合ls -l可进一步查看版本信息。

通过rpmyum查询已安装的Java RPM包

若Java通过RPM包安装,可使用rpmyum查询已安装的Java相关包:

rpm -qa | grep java

输出示例:

java-1.8.0-openjdk-1.8.0.312.b07-0.el7_9.x86_64
java-11-openjdk-11.0.13.0.8-0.el7_9.x86_64
tzdata-java-2021e-1.el7.noarch

通过包名可明确已安装的Java版本,若需查看特定包的详细信息,可使用:

rpm -qi java-1.8.0-openjdk-1.8.0.312.b07-0.el7_9.x86_64

使用ls命令直接查看Java安装目录

若已知Java安装路径(如/usr/lib/jvm),可直接列出该目录下的文件夹:

ls /usr/lib/jvm

输出会显示所有已安装的Java版本,如java-1.8.0-openjdkjava-11-openjdk等。

结合awkgrep提取版本信息

在脚本化操作中,可能需要提取Java版本号的核心部分,可通过管道结合文本处理工具实现:

java -version 2>&1 | awk -F '"' '/version/ {print $2}'

输出仅为版本号,如8.0_312

常见Java版本对照表

为了更直观地理解版本号与Java版本的对应关系,以下是部分常见Java版本的对照表:

版本号 Java正式名称 发布时间 主要特性
8.0_xxx Java 8 2014年 Lambda表达式、Stream API、默认方法
0.x Java 11 2018年 模块化系统、HTTP客户端、ZGC垃圾回收器
0.x Java 17 2021年 Sealed Classes、Record、Pattern Matching
0.x Java 21 2023年 Virtual Threads、Sequenced Collections

相关问答FAQs

问题1:为什么java -version显示的版本与JAVA_HOME指向的版本不一致?
解答:这种情况通常由环境变量配置错误或路径冲突导致,可能的原因包括:

  1. JAVA_HOME未正确设置或指向了错误的Java路径;
  2. 系统的PATH变量中存在优先级更高的Java路径,覆盖了JAVA_HOME的设置;
  3. 多个Java版本共存且update-alternatives未正确配置。
    解决方法:检查JAVA_HOMEPATH变量,确保两者指向同一Java版本;使用update-alternatives --config java统一管理版本。

问题2:如何在CentOS中安装多个Java版本并切换?
解答:在CentOS中可通过以下步骤实现多版本Java的安装与切换:

  1. 安装多个Java版本:使用yumdnf安装不同版本的Java,
    sudo yum install java-1.8.0-openjdk java-11-openjdk
  2. 配置update-alternatives:为每个Java版本注册 alternatives:
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/jre/bin/java 1800
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 1100

    (数字为优先级,数值越大优先级越高)

  3. 切换版本:执行sudo update-alternatives --config java,根据提示选择所需版本。
  4. 验证:通过java -version确认当前版本。

通过以上方法,可灵活管理CentOS系统中的Java版本,满足不同开发环境的需求。

分享:
扫描分享到社交APP
上一篇
下一篇