在linux系统中,查询java路径是开发者和运维人员经常需要操作的任务,比如在配置JAVA_HOME环境变量、排查java应用启动问题、确认java版本对应的安装目录时,都需要准确获取java的路径信息。下面介绍几种常用的查询方法,适用于不同的使用场景。

方法一:使用which命令查询java可执行文件路径
如果系统中已经将java添加到环境变量PATH中,可以直接使用which命令查询java可执行文件的路径,该方法是最简便的查询方式。
# 查询java可执行文件路径 which java
执行上述命令后,如果返回类似/usr/bin/java的结果,说明已经查询到java的可执行文件路径。但这个路径通常是软链接,不是真实的安装目录,需要进一步解析。
方法二:使用readlink命令解析真实安装路径
通过which命令得到的java路径往往是软链接,使用readlink命令可以追踪软链接指向的真实路径,从而获取java的实际安装位置。
# 解析java软链接的真实路径 readlink -f $(which java)
执行命令后返回的结果就是java可执行文件的真实路径,比如/usr/lib/jvm/java-11-openjdk-amd64/bin/java,去掉末尾的/bin/java就是java的根安装目录。
方法三:使用update-alternatives命令查询(适用于Debian/Ubuntu系)
在Debian或者Ubuntu系统中,通常使用update-alternatives管理多版本软件,可以通过该命令查询所有已安装的java路径。
# 查看java的所有可选安装路径 update-alternatives --list java
命令执行后会列出系统中所有已注册的java可执行文件路径,同样可以通过readlink -f解析每个路径得到真实安装目录。
方法四:使用find命令全局搜索java路径
如果系统中没有配置java的环境变量,或者需要查找所有java相关的安装目录,可以使用find命令进行全局搜索,不过该方法执行速度相对较慢。
# 搜索系统中所有名为java的可执行文件 sudo find / -name java -type f 2>/dev/null
命令会遍历整个系统目录,查找名为java的可执行文件,搜索结果会包含多个路径,需要自行判断哪个是目标java的安装路径。
方法五:通过java命令自带参数查询
java本身提供了查看安装目录的参数,可以直接通过执行java命令获取路径信息,不需要额外的解析操作。
# 查看java的安装目录 java -XshowSettings:properties -version 2>&1 | grep 'java.home'
执行命令后会输出java.home对应的属性值,这个值就是当前使用的java的安装根目录,比如/usr/lib/jvm/java-11-openjdk-amd64。
不同方法的适用场景对比
为了更清晰地选择查询方法,下面整理了不同方法的适用场景和特点:
| 查询方法 | 适用场景 | 特点 |
|---|---|---|
| which + readlink | 已配置java环境变量,需要快速获取真实路径 | 操作简单,执行速度快 |
| update-alternatives --list | Debian/Ubuntu系统,需要查看所有已安装java版本 | 可以列出所有版本路径,便于多版本管理 |
| find命令搜索 | 未配置环境变量,需要查找所有java安装位置 | 覆盖范围全,但执行速度慢 |
| java -XshowSettings参数 | 需要直接获取java安装根目录 | 无需解析软链接,结果直接可用 |
注意事项
- 执行
find命令时需要加上sudo权限,否则可能无法访问部分系统目录,导致搜索结果不全。 - 如果系统中安装了多个java版本,不同方法查询到的结果可能是当前默认使用的版本路径,需要确认是否符合需求。
- 获取到的java路径如果需要配置JAVA_HOME环境变量,建议使用
java -XshowSettings:properties得到的java.home值,或者readlink -f解析后去掉/bin/java的路径,避免配置错误。
java_pathlinux_commandwhichreadlink修改时间:2026-07-04 12:24:10