杰瑞科技汇

Linux下如何查看Java安装路径?

在 Linux 系统上,查看 Java 安装路径有多种方法,具体取决于 Java 是如何安装的(通过包管理器、手动解压安装等),下面我将从最常用到最详细的顺序,为你介绍几种方法。

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

使用 whichwhereis 命令(最常用)

这两个命令可以快速找到 Java 可执行文件的位置。

which java

这个命令会显示当前用户环境变量 PATH 中找到的第一个 java 命令的完整路径。

which java

示例输出:

/usr/bin/java

这表示 java 命令位于 /usr/bin/java,但请注意,这通常是一个符号链接,指向真正的 Java 安装目录。

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

whereis java

whereis 命令比 which 更强大,它会查找二进制文件、源代码和手册页的位置。

whereis java

示例输出:

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

这个输出告诉你,Java 的可执行文件在 /usr/bin/java,相关的库文件在 /usr/share/java,而主要的安装目录(JVM)在 /usr/lib/jvm/java-11-openjdk-amd64,这个 jvm 目录通常是你最关心的 Java 安装路径。


使用 update-java-alternatives 命令(针对 Debian/Ubuntu 系统)

如果你使用的是 apt 包管理器(如 Ubuntu, Debian, Mint 等),系统通常会使用 update-java-alternatives 来管理多个 Java 版本。

Linux下如何查看Java安装路径?-图3
(图片来源网络,侵删)
update-java-alternatives --list

示例输出:

java-1.8.0-openjdk-amd64   1081        /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-11-openjdk-amd64      1101        /usr/lib/jvm/java-11-openjdk-amd64
java-17-openjdk-amd64      1171        /usr/lib/jvm/java-17-openjdk-amd64

这个列表清晰地显示了所有已安装的 Java 版本及其对应的安装路径,你可以使用 update-java-alternatives -s <路径> 来切换默认的 Java 版本。


使用 ls -l 跟随符号链接

which 命令找到的路径往往是符号链接,要找到最终的真实路径,可以使用 ls -l 命令。

ls -l $(which java)

或者分两步:

# 1. 先找到 java 命令的位置
which java
# 假设输出是 /usr/bin/java
# 2. 查看该位置的详细信息
ls -l /usr/bin/java

示例输出:

lrwxrwxrwx 1 root root 25 Nov 20 10:30 /usr/bin/java -> /etc/alternatives/java

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

ls -l /etc/alternatives/java

示例输出:

lrwxrwxrwx 1 root root 46 Nov 20 10:31 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-amd64/bin/java

现在我们找到了最终的真实路径:/usr/lib/jvm/java-17-openjdk-amd64/bin/java,Java 的主安装路径就是 /usr/lib/jvm/java-17-openjdk-amd64


使用 readlink 命令(更优雅地解析符号链接)

readlink 命令可以更直接地解析符号链接的最终目标。

readlink -f $(which java)

示例输出:

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

这个命令非常高效,一步就能找到 java 可执行文件的绝对路径。


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

JAVA_HOME 是一个非常重要的环境变量,它指向 Java 的主安装目录,很多应用程序(如 Tomcat, Maven)依赖它。

echo $JAVA_HOME

可能的结果:

  1. 有输出: 如果已经正确设置了 JAVA_HOME,它会直接显示路径。
    /usr/lib/jvm/java-17-openjdk-amd64
  2. 无输出或为空: JAVA_HOME 没有被设置,命令不会有任何输出。

注意: JAVA_HOME 未设置,你可以根据上面找到的路径手动设置它(通常在 ~/.bashrc, ~/.profile/etc/environment 文件中添加):

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

使用 java -XshowSettings:properties 命令

Java 自身可以打印出其内部配置信息,包括安装路径。

java -XshowSettings:properties -version 2>&1 | grep "java.home"

命令解释:

  • java -XshowSettings:properties: 打印 Java 的系统属性。
  • -version: 同时打印 Java 版本信息,确保命令能执行。
  • 2>&1: 将错误流重定向到标准输出,因为某些 Java 版本的信息可能输出到 stderr。
  • grep "java.home": 从输出中过滤出包含 java.home 的行。

示例输出:

java.home = /usr/lib/jvm/java-17-openjdk-amd64

这个 java.home 属性的值就是 Java 的安装根目录。


总结与推荐

方法 命令 优点 缺点 适用场景
which which java 最快,简单 返回的可能是链接 快速确认 java 命令是否存在
whereis whereis java 信息全面,显示多个相关路径 输出信息较多 需要了解 Java 文件分布时
update-java-alternatives update-java-alternatives --list 官方管理工具,清晰列出所有版本 仅适用于 Debian/Ubuntu 系统 管理 Ubuntu/Debian 上的多版本 Java
ls -l ls -l $(which java) 直观,可手动追踪链接 需要多步操作 理解符号链接链时
readlink readlink -f $(which java) 非常推荐,一步到位获取真实路径 快速、可靠地获取 Java 可执行文件的真实路径
JAVA_HOME echo $JAVA_HOME 直接获取标准环境变量值 可能未设置 检查或使用 JAVA_HOME 环境变量时
java -XshowSettings java -XshowSettings:properties ... 最权威,来自 Java 自身 命令稍长,需要解析输出 需要获取 Java 内部确认的路径时

最推荐的通用方法是:

readlink -f $(which java)

这个命令在大多数 Linux 发行版上都能工作,并且能直接、准确地告诉你 Java 可执行文件的最终位置,如果你想找的是主安装目录(JVM),那么输出结果的 bin 目录的上一级就是你所需要的路径。

分享:
扫描分享到社交APP
上一篇
下一篇