在linux系统中,jdk的安装目录没有统一固定的位置,会根据不同的安装方式存放在不同的路径下,同时我们也可以通过特定命令快速查找已安装的jdk所在位置。

不同安装方式对应的默认jdk目录
1. 系统包管理器安装
使用yum、apt等系统自带的包管理器安装jdk时,默认的存放路径有固定规律:
- 基于RedHat、CentOS的系统,通过yum安装的jdk一般存放在
/usr/lib/jvm/目录下,不同版本的jdk会有对应的子目录,比如/usr/lib/jvm/java-11-openjdk-amd64。 - 基于Debian、Ubuntu的系统,通过apt安装的jdk同样大多存放在
/usr/lib/jvm/目录,子目录命名规则和RedHat系类似。
2. 手动解压安装
如果是从oracle官网或者openjdk官网下载压缩包,手动解压安装jdk,目录位置完全由解压时的路径决定:
- 很多开发者会选择解压到
/usr/local/目录下,比如/usr/local/jdk-17.0.9。 - 也有部分用户会解压到自己的用户目录,比如
/home/用户名/jdk-17.0.9。
3. 第三方工具安装
使用sdkman这类第三方版本管理工具安装jdk时,默认目录是/home/用户名/.sdkman/candidates/java/,每个安装的jdk版本会有独立的子目录。
快速查找jdk目录的命令
如果不确定jdk的安装位置,可以通过以下命令快速定位:
1. 使用which命令
which命令可以查找可执行文件的位置,jdk的java可执行文件所在目录的上层就是jdk根目录:
# 查找java可执行文件路径 which java # 示例输出:/usr/bin/java # 再查找该路径的真实指向 ls -l /usr/bin/java # 示例输出:lrwxrwxrwx 1 root root 22 1月 1 00:00 /usr/bin/java -> /etc/alternatives/java # 继续追踪 ls -l /etc/alternatives/java # 示例输出:lrwxrwxrwx 1 root root 43 1月 1 00:00 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java # 此时/usr/lib/jvm/java-11-openjdk-amd64就是jdk根目录
2. 使用update-alternatives命令
如果系统配置了java的alternatives选项,可以直接通过该命令查看:
update-alternatives --config java # 输出中会显示所有已安装的java路径,路径的bin目录的上层就是jdk根目录
3. 使用find命令全局搜索
如果以上方法都找不到,可以用find命令全局搜索jdk的特征文件:
# 搜索jdk的release文件,该文件是每个jdk安装包都自带的 sudo find / -name "release" | grep jvm # 或者搜索java可执行文件 sudo find / -name "java" | grep bin
验证jdk目录是否正确
找到疑似jdk目录后,可以进入该目录的bin文件夹,执行java -version命令验证:
# 进入疑似jdk目录的bin文件夹 cd /usr/lib/jvm/java-11-openjdk-amd64/bin # 执行版本查看命令 ./java -version
如果输出正常的jdk版本信息,说明该目录就是正确的jdk安装目录。后续配置JAVA_HOME环境变量时,直接将该目录路径赋值给JAVA_HOME即可,比如:
# 在~/.bashrc或者/etc/profile中添加配置 export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH