杰瑞科技汇

Linux下如何查Java安装路径?

在 Linux 系统中查看 Java 的安装路径,有多种方法,可以根据你的具体情况(Java 是否通过 apt/yum 安装,是否设置了 JAVA_HOME 等)选择最合适的一种。

Linux下如何查Java安装路径?-图1
(图片来源网络,侵删)

以下是几种最常用和最可靠的方法,按推荐顺序排列:


使用 whichtype 命令(查找可执行文件路径)

这是最直接的方法,可以告诉你当前系统默认使用的 java 命令位于哪个位置。

使用 which 命令

which 命令会在环境变量 $PATH 定义的路径中查找指定的可执行文件。

which java

示例输出:

Linux下如何查Java安装路径?-图2
(图片来源网络,侵删)
/usr/bin/java

这表示 java 命令是一个指向 /usr/bin/java 的符号链接。

使用 type 命令

type 命令功能更强大,不仅可以显示路径,还能告诉你命令的类型(是别名、内置命令还是文件)。

type java

示例输出 1 (符号链接):

java is /usr/bin/java

示例输出 2 (符号链接的真实路径): 如果你想找到最终指向的文件,可以结合 ls -l

Linux下如何查Java安装路径?-图3
(图片来源网络,侵删)
ls -l $(which java)

输出可能类似:

lrwxrwxrwx 1 root root 23 Oct 25 10:30 /usr/bin/java -> /etc/alternatives/java

这表明 /usr/bin/java 指向 /etc/alternatives/java


使用 update-alternatives 命令(管理多个 Java 版本)

在许多基于 Debian/Ubuntu 的系统上,update-alternatives 工具用于管理多个可用的软件版本(如 Java, Python 等),这是查看系统中所有已安装 Java 版本及其路径的权威方法。

update-alternatives --display java

示例输出:

java - auto mode
  best version is /usr/lib/jvm/java-11-openjdk-amd64/bin/java
  link currently points to /usr/lib/jvm/java-11-openjdk-amd64/bin/java
  link java is /usr/bin/java
slave java.1.gz is /usr/share/man/man1/java.1.gz

从输出中你可以清楚地看到:

  • 最佳版本 (best version): /usr/lib/jvm/java-11-openjdk-amd64/bin/java
  • 当前链接指向 (link currently points to): 同上
  • 系统链接路径: /usr/bin/java

检查环境变量 $JAVA_HOME

$JAVA_HOME 是一个非常重要的环境变量,许多 Java 应用服务器(如 Tomcat, JBoss)和构建工具(如 Maven, Gradle)都依赖它来定位 JDK 的安装路径。

直接打印 $JAVA_HOME 变量

echo $JAVA_HOME

示例输出:

/usr/lib/jvm/java-11-openjdk-amd64

通过 java 命令反向查找 $JAVA_HOME

$JAVA_HOME 未设置,或者你想验证它是否正确,可以使用以下命令反向推导出 JDK 的主目录。

readlink -f $(which java)

命令解释:

  • which java: 找到 java 命令的路径,/usr/bin/java
  • readlink -f: 解析符号链接,并返回最终的绝对路径,它会解析 /usr/bin/java -> /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java,最终得到 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
  • dirname: 获取路径的目录部分。

一个更完整的命令是:

dirname $(dirname $(readlink -f $(which java)))

示例输出:

/usr/lib/jvm/java-11-openjdk-amd64

这个路径通常就是 $JAVA_HOME 应该设置的值。


查找 JDK 的安装目录(手动搜索)

如果你不确定 Java 是如何安装的,或者上述方法都失败了,你可以手动在常见的安装目录中搜索。

# 在 /usr 目录下搜索包含 "java" 或 "jdk" 的目录
sudo find /usr -name "*java*" -type d 2>/dev/null

示例输出:

/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/bin/java

你也可以搜索 java 可执行文件:

# 查找所有名为 java 的可执行文件
sudo find / -name "java" -type f 2>/dev/null

总结与推荐

方法 命令 优点 缺点 适用场景
which java which java 快速、简单,直接给出命令路径 只能找到默认路径,不一定是 JDK 根目录 快速确认 java 命令位置
update-alternatives update-alternatives --display java 最权威,能显示所有安装的 Java 版本 仅适用于使用该工具的系统(如 Debian/Ubuntu) 管理/查看多个 Java 版本的首选
$JAVA_HOME echo $JAVA_HOME 直接获取应用开发/部署所需的关键路径 可能未设置或设置错误 需要获取 $JAVA_HOME
反向推导 dirname $(dirname $(readlink -f $(which java))) 可靠地计算出 JDK 的根目录 命令稍显复杂 $JAVA_HOME 未设置时,用来推断其值
手动查找 sudo find /usr -name "*java*" 最彻底,能找到所有相关文件 速度慢,需要 sudo 权限 其他方法都失效时的备选方案

推荐流程:

  1. 快速检查:运行 which java
  2. 查看详情:如果系统是 Debian/Ubuntu,运行 update-alternatives --display java 获取最完整的信息。
  3. 获取 $JAVA_HOME:运行 echo $JAVA_HOME,如果为空,使用反向推导命令 dirname $(dirname $(readlink -f $(which java))) 来获取。
分享:
扫描分享到社交APP
上一篇
下一篇