如何查看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)
酷番叔酷番叔
上一篇 5小时前
下一篇 5小时前

相关推荐

  • Linux如何正确关闭网络连接?3种方法

    断开特定客户端的TCP连接当需要终止某个远程客户端(如SSH用户或异常访问IP)的活跃连接时:定位目标连接使用ss或netstat命令查看活跃连接:sudo ss -tunp | grep <客户端IP或端口> # 示例:sudo ss -tunp | grep 192.168.1.100输出示例……

    2025年6月23日
    2800
  • Linux无线网卡驱动安装失败?

    安装前的关键准备确认无线网卡型号在终端执行:lspci | grep -i network # PCI接口网卡lsusb | grep -i network # USB接口网卡记录输出中的硬件ID(如 8086:2723)或型号(如 Intel AX200),检查当前驱动状态lspci -k | grep -A……

    2025年7月6日
    2700
  • Linux如何快速打开命令行?

    图形界面下的常用方法快捷键启动(最快捷)通用快捷键:Ctrl + Alt + T(适用于Ubuntu、Debian、Fedora等主流发行版),特殊环境:KDE Plasma:Alt + F2 输入 konsoleXFCE:Super(Windows键)搜索 “Terminal”应用程序菜单查找步骤:点击桌面左……

    2025年6月13日
    2900
  • Linux中如何将文件复制到U盘?详细操作步骤有哪些?

    在Linux系统中将文件复制到U盘是一个常见操作,但需要经过设备识别、挂载、数据传输和卸载等步骤,由于Linux的文件系统结构与Windows不同,操作时需注意文件系统兼容性和权限问题,以下将详细介绍操作流程,涵盖命令行和图形界面两种方式,并解答常见问题,操作前提:识别U盘与文件系统准备识别U盘设备插入U盘后……

    1天前
    500
  • Linux程序卡死?如何快速停止?

    通过终端停止程序终止前台程序(Ctrl+C)适用场景:程序在终端前台运行(如 python script.py),操作:按下 Ctrl + C 组合键,立即发送中断信号(SIGINT),程序会正常退出并释放资源,示例:$ tail -f /var/log/syslog # 运行中按 Ctrl+C 终止通过进程I……

    2025年7月27日
    1600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信