杰瑞科技汇

Linux下如何快速找到Java安装路径?

在 Linux 系统中,有几种常用且可靠的方法来查找 Java 的安装路径,我会按照从最推荐到备选的顺序列出这些方法。

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

使用 whichreadlink (最推荐)

这是最直接、最可靠的方法之一,因为它能找到当前环境变量 PATH 中指定的 Java 可执行文件,并解析出其真实的安装路径。

  1. 首先找到 Java 可执行文件的位置:

    which java

    这会输出类似 /usr/bin/java 的结果,这是一个符号链接(软链接)。

  2. 然后使用 readlink 解析符号链接:

    Linux下如何快速找到Java安装路径?-图2
    (图片来源网络,侵删)
    readlink -f $(which java)

    或者分两步执行:

    # 第一步:找到链接
    readlink -f /usr/bin/java

    这个命令会直接显示 Java 的真实安装路径。

    示例输出:

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

    或者

    Linux下如何快速找到Java安装路径?-图3
    (图片来源网络,侵删)
    /usr/local/java/jdk-17.0.2/bin/java

使用 update-java-alternatives (适用于 Debian/Ubuntu 系统)

如果你的系统是通过 apt 包管理器安装的 Java,并且使用了 update-alternatives 工具来管理多个 Java 版本,这个方法非常有效。

  1. 列出所有已配置的 Java 版本:

    update-java-alternatives --list

    示例输出:

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

    这里的第二列就是 Java 的安装路径。

  2. 查看当前正在使用的 Java 版本:

    # 查看默认的 Java 版本
    update-java-alternatives --get-selections

    示例输出:

    java-17-openjdk-amd64  manual

    这表示当前系统默认使用的是 java-17-openjdk-amd64,其路径就是上一步列表中对应的 /usr/lib/jvm/java-17-openjdk-amd64


使用 ls -l 查看符号链接 (简单直观)

如果你已经通过 which java 找到了 Java 的位置,可以直接用 ls 命令查看其详细信息。

ls -l /usr/bin/java

示例输出:

lrwxrwxrwx 1 root root 25 Nov 15 10:00 /usr/bin/java -> /etc/alternatives/java

这显示 /usr/bin/java 是一个指向 /etc/alternatives/java 的链接,继续追踪这个链接:

ls -l /etc/alternatives/java

示例输出:

lrwxrwxrwx 1 root root 43 Nov 15 10:01 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-amd64/bin/java

你会找到真实的 Java 可执行文件路径 /usr/lib/jvm/java-17-openjdk-amd64/bin/java,它的上一级目录 /usr/lib/jvm/java-17-openjdk-amd64 Java 的主安装目录。


使用 echo $JAVA_HOME (检查环境变量)

JAVA_HOME 是一个非常重要的环境变量,很多 Java 应用(如 Tomcat、Maven)都依赖它来定位 Java 安装路径。这个变量不一定总是被设置。

  1. 直接输出变量:

    echo $JAVA_HOME

    如果已经设置,它会直接输出 Java 的安装路径。 示例输出:

    /usr/lib/jvm/java-17-openjdk-amd64
  2. 如果变量未设置,可以尝试手动查找: 如果上面命令没有输出,说明 JAVA_HOME 未设置,你可以结合前面的方法来手动设置它,例如在你的 ~/.bashrc~/.profile 文件中添加:

    export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")

    然后运行 source ~/.bashrc 使其生效。


使用 whereis 命令 (快速查找)

whereis 命令用于定位二进制文件、源代码和手册页,它速度很快,但返回的信息可能比较宽泛。

whereis java

示例输出:

java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

这告诉你 java 的可执行文件在 /usr/bin/java,相关的库文件在 /usr/share/java,这个结果比较宽泛,不如前面的方法精确。


总结与推荐

方法 命令 优点 缺点 适用场景
readlink -f $(which java) readlink -f $(which java) 最精确、最推荐,直接返回真实路径 无明显缺点 适用于所有 Linux 发行版
update-java-alternatives update-java-alternatives --list 管理 Java 版本非常清晰 仅适用于 Debian/Ubuntu 等 需要管理多版本 Java 的系统
ls -l ls -l /usr/bin/java 直观,易于理解 需要多次追踪链接 适合手动排查和了解链接关系
echo $JAVA_HOME echo $JAVA_HOME 快速,符合应用需求 变量可能未设置 检查或设置环境变量时
whereis whereis java 速度最快 结果不够精确 快速定位 Java 相关文件的大致位置

日常使用建议:

  • 快速获取精确路径: 直接使用 readlink -f $(which java)
  • 在 Debian/Ubuntu 系统上管理 Java: 使用 update-java-alternatives
  • 检查或配置环境变量: 使用 echo $JAVA_HOME
分享:
扫描分享到社交APP
上一篇
下一篇