在 Linux 系统中查看 JDK 安装目录是 Java 开发者和系统管理员的常见需求,无论是配置环境变量、排查问题还是验证安装,都需要准确找到 JDK 的路径,本文将详细介绍多种查看 JDK 目录的方法,涵盖不同安装场景和命令工具,帮助读者全面掌握相关技能。
使用 java
命令查看 JDK 安装路径
java
命令本身会提供部分安装路径信息,是最基础的查看方式之一,通过以下命令可以快速定位 JDK 的主目录:
查看 Java 安装根目录
执行以下命令,会输出 JDK 的安装路径,通常包含 java_home
信息:
java -XshowSettings:properties -version 2>&1 | grep "java.home"
命令说明:
-XshowSettings:properties
:显示 Java 系统属性,包括java.home
(JDK 安装根目录)。2>&1
:将错误输出重定向到标准输出,确保信息完整。grep "java.home"
:过滤出包含java.home
的行,快速定位路径。
示例输出:
java.home = /usr/lib/jvm/java-11-openjdk-amd64
这里的 /usr/lib/jvm/java-11-openjdk-amd64
即为 JDK 的安装根目录。
查看 Java 可执行文件路径
通过 which
或 whereis
命令可以定位 java
可执行文件的具体路径,进而推断 JDK 安装目录:
which java
或
whereis java
示例输出:
/usr/bin/java # which 命令输出
java: /usr/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java # whereis 命令输出
若输出路径为 /usr/bin/java
,说明系统通过符号链接指向实际 JDK 位置,可通过 ls -l /usr/bin/java
查看链接目标:
lrwxrwxrwx 1 root root 25 10月 26 10:00 /usr/bin/java -> /etc/alternatives/java
再继续追踪 /etc/alternatives/java
的链接目标:
ls -l /etc/alternatives/java
最终会指向真实的 JDK 安装目录,如 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
。
通过 update-alternatives
查看 JDK 路径(适用于 Debian/Ubuntu 系统)
在 Debian、Ubuntu 等 Linux 发行版中,update-alternatives
工具用于管理多个软件版本的切换,可通过它查看当前 JDK 的配置信息:
查看 Java 相关的替代项列表
update-alternatives --display java
输出示例:
java - 自动模式
最佳版本 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
链接目前指向 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
链接 java.11.man -> /usr/share/man/man1/java.11.gz
优先级 1101
路径 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
次要版本 /usr/lib/jvm/java-8-openjdk-amd64/bin/java
最佳版本”和“路径”即当前 JDK 的安装目录。
查看 JDK 相关的所有替代项
若需查看所有 JDK 版本(包括 javac
、javadoc
等),可执行:
update-alternatives --list all | grep -E "(java|jdk)"
或直接列出 Java 相关工具:
update-alternatives --list java update-alternatives --list javac
检查环境变量:JAVA_HOME
与 PATH
环境变量是系统定位 JDK 的重要依据,需重点检查 JAVA_HOME
和 PATH
变量:
查看 JAVA_HOME
变量
JAVA_HOME
通常指向 JDK 的安装根目录,可通过以下命令查看:
echo $JAVA_HOME
若输出为空或路径错误,说明未正确配置环境变量,需手动编辑 ~/.bashrc
或 /etc/profile
文件添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
配置后执行 source ~/.bashrc
或 source /etc/profile
使其生效。
检查 PATH
中的 JDK 路径
PATH
变量包含 JDK 可执行文件的路径,可通过以下命令查看:
echo $PATH | tr ':' '\n' | grep java
输出示例:
/usr/lib/jvm/java-11-openjdk-amd64/bin
/usr/bin/java
/usr/lib/jvm/java-11-openjdk-amd64/bin
即为 JDK 的 bin
目录,可通过此路径向上追溯至 JDK 根目录。
查看 JDK 安装目录的文件系统位置
通过文件系统直接浏览 JDK 安装目录,是最直观的方式之一,常见 JDK 安装路径如下:
官方 JDK 或 Oracle JDK
通常位于 /usr/java/
或 /opt/
目录下:
ls -l /usr/java/ ls -l /opt/
示例输出:
/usr/java/jdk-11.0.12/
/opt/jdk-17/
OpenJDK(通过包管理器安装)
在基于 Debian/Ubuntu 的系统中,OpenJDK 通常位于 /usr/lib/jvm/
:
ls -l /usr/lib/jvm/
示例输出:
/usr/lib/jvm/java-11-openjdk-amd64/
/usr/lib/jvm/java-8-openjdk-amd64/
在基于 RHEL/CentOS 的系统中,通常位于 /usr/lib/jvm/
或 /usr/java/
:
ls -l /usr/lib/jvm/ ls -l /usr/java/
手动安装的 JDK
若 JDK 通过源码编译或手动解压安装,可能位于用户目录或自定义路径(如 /usr/local/
):
ls -l /usr/local/
示例输出:
/usr/local/jdk-11.0.12/
使用 lsb_release
和 dpkg/rpm
查询 JDK 安装信息
查询系统发行版信息
通过 lsb_release
了解系统版本,有助于判断 JDK 的安装方式:
lsb_release -a
输出示例:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
使用包管理器查询 JDK 安装包
-
Debian/Ubuntu 系统(使用
dpkg
):dpkg -l | grep -i openjdk
输出示例:
ii openjdk-11-jdk:amd64 11.0.12+7-0ubuntu1~20.04 amd64 OpenJDK Development Kit (JDK)
通过
dpkg -L
查看安装路径:dpkg -L openjdk-11-jdk | head -10
输出示例:
/. /usr /usr/lib /usr/lib/jvm /usr/lib/jvm/java-11-openjdk-amd64 /usr/lib/jvm/java-11-openjdk-amd64/bin /usr/lib/jvm/java-11-openjdk-amd64/conf /usr/lib/jvm/java-11-openjdk-amd64/include /usr/lib/jvm/java-11-openjdk-amd64/legal /usr/lib/jvm/java-11-openjdk-amd64/man
-
RHEL/CentOS 系统(使用
rpm
):rpm -qa | grep -i java
输出示例:
java-11-openjdk-11.0.12.7-1.el7_9.x86_64
通过
rpm -ql
查看安装路径:rpm -ql java-11-openjdk-11.0.12.7-1.el7_9.x86_64 | head -10
输出示例:
/etc /etc/java /etc/java/java.conf /etc/java/openjdk /etc/java/openjdk/certs /etc/java/openjdk/security /etc/pki/java /etc/pki/java/cacerts /usr /usr/lib
常见 JDK 安装路径总结
安装方式 | 常见路径 | 适用系统 |
---|---|---|
官方 JDK(手动安装) | /usr/java/ 、/opt/jdk-<version>/ |
所有系统 |
OpenJDK(包管理器安装) | /usr/lib/jvm/java-<version>-openjdk/ |
Debian/Ubuntu、RHEL/CentOS |
手动解压安装 | /usr/local/jdk-<version>/ |
所有系统 |
Snap 安装 | /snap/<snap-name>/current/ |
支持 Snap 的系统(如 Ubuntu) |
注意事项
- 符号链接问题:部分系统中
java
命令可能通过update-alternatives
或alternatives
管理符号链接,需通过ls -l
追踪真实路径。 - 多版本共存:若系统安装多个 JDK 版本,需确认当前使用的版本可通过
java -version
验证。 - 环境变量优先级:
JAVA_HOME
和PATH
的配置可能被 Shell 配置文件(如~/.bashrc
、/etc/profile
)覆盖,需检查加载顺序。 - 权限问题:查看 JDK 目录时需确保当前用户有读取权限,必要时使用
sudo
。
通过以上方法,可以全面、准确地定位 Linux 系统中 JDK 的安装目录,根据不同的安装场景和系统环境,选择合适的命令组合,能够高效解决 JDK 路径查找问题,为后续开发和运维工作提供支持。