杰瑞科技汇

Linux Java环境变量怎么查?

  1. Shell 环境变量:这些变量定义了 Java 的安装路径、可执行文件位置等,是操作系统和 Shell 用来查找和运行 Java 程序的。
  2. Java 系统属性:这些是 Java 虚拟机在运行时内部使用的配置信息,Java 安装路径、版本号、虚拟机参数等。

下面我将详细介绍如何查看这两类变量,并提供一些常见问题的排查方法。

Linux Java环境变量怎么查?-图1
(图片来源网络,侵删)

查看 Shell 环境变量

这些变量通常在你的 Shell 配置文件(如 ~/.bashrc, ~/.bash_profile, /etc/profile 等)中设置。

查看 JAVA_HOME

JAVA_HOME 是最重要的环境变量,它指向 JDK 的安装根目录。

# 使用 echo 命令查看
echo $JAVA_HOME

如果输出为空或者路径不正确,说明 JAVA_HOME 可能没有设置或者设置错误。

查看 PATH 变量中的 Java 路径

PATH 变量包含了系统在执行命令时会搜索的目录列表,Java 的可执行文件(java, javac, jar 等)通常被添加到 PATH 中,这样你就可以在任何目录下直接运行它们。

Linux Java环境变量怎么查?-图2
(图片来源网络,侵删)
# 使用 echo 命令查看整个 PATH
echo $PATH
# 或者使用 grep 命令只查看包含 java 的部分
echo $PATH | grep java

你会看到类似 /usr/lib/jvm/java-11-openjdk-amd64/bin 或者 $JAVA_HOME/bin 这样的路径。

查看所有 Java 相关的环境变量

如果你想一次性看到所有与 Java 相关的环境变量,可以使用 envprintenv 命令,并结合 grep 进行过滤。

# 查看所有环境变量并过滤出 java 相关的
env | grep -i java
# 或者使用 printenv
printenv | grep -i java

-i 参数表示不区分大小写。

输出示例可能如下:

Linux Java环境变量怎么查?-图3
(图片来源网络,侵删)
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
PATH=...:/usr/lib/jvm/java-11-openjdk-amd64/bin:...

查看 Java 系统属性

这些信息是通过 Java 命令本身来获取的,反映了当前运行中或已安装的 Java 的详细信息。

查看 Java 安装路径 (java.home)

这个属性告诉你当前使用的 Java 运行时环境的安装路径。

# java.home 属性指向 JRE 的根目录
java -XshowSettings:properties -version 2>&1 | grep "java.home"
# 或者更直接的方式
java -XshowSettings:properties -version 2>&1 | grep "java.home"

解释:

  • java -version: 运行 Java 版本信息。
  • -XshowSettings:properties: 显示 Java 的系统属性。
  • 2>&1: 将错误流重定向到标准输出,确保信息能被捕获。
  • grep "java.home": 从输出中筛选出包含 java.home 的行。

输出示例:

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

注意: java.home 通常指向 JRE 目录,而 JAVA_HOME 应该指向 JDK 目录,在 JDK 安装中,JRE 通常位于 jdk/jre 目录下。

查看所有 Java 系统属性

如果你想看到所有可用的系统属性,可以使用以下命令:

java -XshowSettings:properties -version 2>&1 | grep "^[[:space:]]*[^[:space:]]*="

这个命令会列出所有属性的键值对,格式如 key = value

查看 Java 版本和供应商信息

这是最常用的命令,可以确认 Java 是否已安装以及其版本号。

java -version

输出示例:

openjdk version "11.0.16" 2025-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

从输出中你可以清晰地看到 版本号运行时环境虚拟机 信息。


常见问题排查与总结

你可能遇到 java -version 能运行,但 echo $JAVA_HOME 为空的情况,或者 JAVA_HOMEjava -version 显示的路径不一致。

为什么 java -version 可以运行,但 JAVA_HOME 是空的?

因为 java 命令的路径可能被直接写死在系统的某个 PATH 配置文件中(/etc/profile/etc/environment),而不是通过 $JAVA_HOME/bin 来引用。

解决方案: 检查你的 PATH 变量,看看是否直接包含了 JDK 的 bin 目录。

echo $PATH | grep jdk

如果找到了,说明是直接配置的路径,最佳实践是使用 JAVA_HOME 变量,然后在 PATH 中引用 $JAVA_HOME/bin

如何找到 Java 的真实安装路径?

如果不确定 Java 安装在哪里,可以使用 whichwhereis 命令。

# which 命令显示可执行文件的路径
which java
# 输出可能是: /usr/bin/java
# /usr/bin/java 通常是一个符号链接,指向真实的 Java 安装路径
ls -l /usr/bin/java
# 输出可能是: lrwxrwxrwx 1 root root 22 May 10 10:00 /usr/bin/java -> /etc/alternatives/java
# 继续跟下去
ls -l /etc/alternatives/java
# 输出可能是: lrwxrwxrwx 1 root root 46 May 10 10:00 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
# 最终找到了真实的路径: /usr/lib/jvm/java-11-openjdk-amd64

这个路径就是你应该设置的 JAVA_HOME 的值。

系统中安装了多个 Java 版本,如何查看和管理?

Linux 系统常常使用 update-alternatives 工具来管理多个软件版本(包括 Java)。

# 查看当前系统管理的所有 Java 可执行文件
sudo update-alternatives --config java
# 查看所有与 java 相关的链接(包括 javac, javadoc 等)
sudo update-alternatives --display java

总结表格

目的 命令 说明
检查 Java 是否安装及版本 java -version 最基本、最常用的命令。
查看 JDK 根目录 echo $JAVA_HOME Shell 变量,用于编译和构建。
查看 Java 可执行文件搜索路径 echo $PATH \| grep java Shell 变量,决定命令行如何找到 java
查看 Java 运行时安装路径 java -XshowSettings:properties -version 2>\&1 \| grep "java.home" JVM 内部属性,通常指向 JRE。
查找 java 命令的真实位置 which java & ls -l 用于排查 PATHJAVA_HOME 不一致的问题。
管理多个 Java 版本 sudo update-alternatives --config java 当系统有多个 JDK 时切换默认版本。

希望这份详细的指南能帮助你全面地查看和管理 Linux 上的 Java 环境变量!

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