如何查看Linux系统自带的JDK安装路径、版本及环境变量?

在Linux系统中,查看自带的JDK(Java Development Kit)是开发环境中常见的操作,尤其在避免版本冲突、确认系统兼容性或排查问题时至关重要,Linux发行版通常预装OpenJDK,但不同系统可能通过不同方式管理JDK,因此掌握多种查看方法能更高效地定位信息,以下从命令行工具、环境变量、包管理器等多个维度详细说明如何查看Linux系统自带的JDK。

如何查看linux系统自带的jdk

通过Java命令检查版本和安装状态

Java命令是最直接的检查方式,可快速确认系统是否安装JDK及版本信息,需要注意的是,java命令可能对应JRE(Java Runtime Environment),而JDK包含javac(Java编译器),因此需结合javac -version判断是否为完整JDK。

检查Java版本

执行以下命令:

java -version

输出示例:

openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment 18.9 (build 11.0.12+7)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7, mixed mode, sharing)

若输出包含“OpenJDK Runtime Environment”,说明安装了JRE;若需确认JDK,需进一步检查javac命令。

检查JDK编译器

执行:

javac -version

若输出类似“javac 11.0.12”,则说明系统安装了完整JDK;若提示“命令未找到”,则仅安装了JRE,需额外安装JDK。

检查JAVA_HOME环境变量

JAVA_HOME是Java应用的核心环境变量,指向JDK安装根目录,若已正确配置,可通过以下命令查看:

echo $JAVA_HOME

若输出类似/usr/lib/jvm/java-11-openjdk-amd64,则直接显示JDK路径;若为空或未定义,说明环境变量未设置,此时需结合其他方法定位JDK路径。

注意:部分系统可能未自动设置JAVA_HOME,需手动配置(通常在/etc/profile或用户家目录的.bashrc中添加)。

定位Java可执行文件路径

通过whichls命令可定位Java命令的实际安装路径,进而判断JDK位置。

使用which命令

which java

输出示例:/usr/bin/java,这是Java命令的软链接路径,需进一步解析真实路径。

如何查看linux系统自带的jdk

解析软链接真实路径

执行以下命令获取JDK安装目录:

readlink -f $(which java)

输出示例:/usr/lib/jvm/java-11-openjdk-amd64/bin/java,由此可知JDK根目录为/usr/lib/jvm/java-11-openjdk-amd64

检查常见JDK安装目录

Linux系统通常将JDK安装在/usr/lib/jvm//usr/java/目录下,可直接列出该目录查看:

ls /usr/lib/jvm/

输出可能包含:java-1.8.0-openjdk-amd64java-11-openjdk-amd64等,即为不同版本的JDK目录。

通过包管理器查询已安装的JDK包

不同Linux发行版使用不同的包管理器(如rpm/yumdpkg/apt),通过包管理器可精确查询JDK的包名、版本及安装路径

RedHat/CentOS系统(使用rpmyum

  • 查询所有Java相关包:

    rpm -qa | grep java

    输出示例:

    java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
    java-1.8.0-openjdk-devel-1.8.0.292.b10-1.el7_9.x86_64
    java-11-openjdk-11.0.12-0.el7_9.x86_64

    其中包含devel的包为JDK开发包(含javac),仅openjdk为JRE。

  • 使用yum查询已安装包详情:

    yum list installed | grep java

Debian/Ubuntu系统(使用dpkgapt

  • 查询已安装的Java包:

    dpkg -l | grep openjdk

    输出示例:

    如何查看linux系统自带的jdk

    ii  openjdk-11-jdk:amd64        11.0.12+7-0ubuntu1~20.04      amd64        OpenJDK Development Kit (JDK)
    ii  openjdk-11-jre:amd64        11.0.12+7-0ubuntu1~20.04      amd64        OpenJava Runtime Environment

    包含jdk的为开发包,jre为运行时环境。

  • 使用apt查询安装详情:

    apt list --installed | grep openjdk

使用update-alternatives管理多版本JDK

部分系统通过update-alternatives工具管理多个Java版本,可通过该工具查看当前激活的JDK版本及可选版本:

update-alternatives --display java

输出示例:

java - status is manual.
 link currently points to /usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java provides java (auto mode)

若系统未配置update-alternatives,需先安装该工具(如sudo apt install update-alternatives),再通过sudo update-alternatives --config java切换版本。

不同查看方法对比

为更直观地选择合适方法,以下是常见方式的对比:

方法 命令示例 适用场景 优点 缺点
Java命令检查 java -versionjavac -version 快速确认版本及JDK/JRE状态 简单直接,无需额外工具 无法直接获取安装路径
环境变量检查 echo $JAVA_HOME 查看已配置的JDK路径 直接关联应用配置 需确保环境变量已设置
定位可执行文件路径 readlink -f $(which java) 获取JDK真实安装目录 精确路径,无需包管理器 需处理软链接逻辑
包管理器查询 rpm -qa | grep java 查询JDK包名、版本及依赖 信息全面,适合批量管理 依赖系统包管理工具
update-alternatives update-alternatives --display java 管理多版本JDK及查看激活状态 支持版本切换 需系统已配置该工具

相关问答FAQs

问题1:为什么执行java -version能显示版本,但JAVA_HOME为空?
解答:这种情况通常是因为系统安装了JDK但未配置JAVA_HOME环境变量。java命令通过系统PATH路径定位可执行文件,而JAVA_HOME是手动设置的环境变量,需用户主动配置,可通过以下步骤设置:

  1. 编辑环境变量文件(如/etc/profile或用户家目录的.bashrc):
    sudo nano /etc/profile
  2. 添加以下内容(路径需替换为实际JDK目录):
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
  3. 保存后执行source /etc/profile使配置生效,再次检查echo $JAVA_HOME即可显示路径。

问题2:如何确认系统自带的JDK是否为开发版(包含javac)?
解答:可通过以下两种方式确认:

  1. 检查javac命令:执行javac -version,若输出版本信息(如javac 11.0.12),则说明为开发版JDK;若提示“命令未找到”,则为仅JRE。
  2. 通过包管理器查询包名
    • RedHat系:rpm -qa | grep java,查找包含devel的包(如java-11-openjdk-devel),此类包为JDK开发包;
    • Debian系:dpkg -l | grep openjdk,查找包含jdk的包(如openjdk-11-jdk),区别于jre运行时包。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15858.html

(0)
酷番叔酷番叔
上一篇 2025年8月24日 08:37
下一篇 2025年8月24日 08:51

相关推荐

  • 这样洗碗真的干净吗

    环境准备:构建专业开发基础安装开发工具链终端执行:sudo apt update && sudo apt install build-essential(Debian/Ubuntu)或 sudo dnf groupinstall “Development Tools”(Fedora/CentOS……

    2025年8月1日
    10400
  • Linux环境下如何打开.db文件的具体方法是什么?

    在Linux操作系统中,.db文件通常是SQLite数据库文件的扩展名,SQLite是一种轻量级、基于文件的嵌入式数据库,无需独立服务进程,广泛应用于本地数据存储场景,少数情况下,.db文件也可能是其他数据库(如MySQL的MyISAM表文件)的存储格式,但Linux下最常见的是SQLite数据库,打开.db文……

    2025年8月30日
    9500
  • Linux软链接路径变了怎么更新

    重新创建软链接的核心步骤重新创建需先删除旧链接,再新建链接,不可直接覆盖,命令格式:rm -f /path/to/old_link # 强制删除旧链接ln -s /path/to/new_target /path/to/new_link # 创建新链接示例:将原链接 ~/downloads 指向新的目标 /mn……

    2025年8月6日
    9400
  • 为什么需要更新软件包索引?

    在Linux系统上安装Java是运行Java应用程序、开发环境或服务器软件的基础步骤,以下提供多种可靠方法,涵盖主流发行版(Ubuntu/Debian、CentOS/RHEL)和不同安装方式,确保过程清晰且符合最佳实践,准备工作检查现有Java版本终端执行:java -version若返回command not……

    2025年7月24日
    10200
  • 如何快速包含关键信息?

    通过系统包管理器安装(推荐新手)优势:自动处理依赖关系,一键安装,适合快速部署,适用场景:无需特定版本或最新功能,步骤:更新软件源(确保获取最新版本):sudo apt update # Debian/Ubuntusudo dnf update # Fedorasudo pacman -Sy # Arch/Ma……

    2025年7月24日
    9500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信