如何在Linux上定位和设置JAVA主目录
Java主目录是Java运行时环境和Java开发工具包的安装目录(参见:Java JDK vs JRE。该目录包含Java附带的所有文件,用于运行Java程序或编译它们。此目录的位置可能会根据您的系统(Linux、MacOS、Windows 等)和您安装的 Java 版本而变化。
由于已知该目录会在不同的系统和安装中发生变化,因此尝试在 Linux 系统上运行或编译的 Java 程序将需要一种可靠的方法来确定 Java 主目录的位置。在 Linux 中,JAVA_HOME
环境变量通常用于应用程序确定正确的位置。还存在其他方法 - 您将在下面看到。
在本教程中,您将学习如何在 Linux 系统上找到 Java 主目录。我们还将展示如何通过编辑环境变量来设置 Java 主目录。
在本教程中您将学习:
如何使用环境变量、Java 命令和基本 Linux 命令定位 JAVA 主目录
如何通过环境变量设置JAVA主目录
找到 Linux 上的 Java 主目录
让我们通过下面的几种方法来了解如何确定 Linux 中 Java 主目录的位置。
第一种方法是打印环境变量。对于最新版本的 Java,系统的环境变量可能只能在您手动设置的情况下进行设置。
$ printenv JAVA_HOME or $ echo $JAVA_HOME
如果您没有得到任何输出,则说明您的环境变量尚未设置,但您可以使用下面的其他方法之一。
我们可以使用 Java 本身来运行命令来检查安装目录。然后,我们使用 grep 命令查找相关设置(在本例中为
java.home
)。$ java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' java.home = /usr/lib/jvm/java-19-openjdk-amd64
该命令向我们显示了 Java home 的准确位置。
您知道吗?
如果此命令对您产生错误,则说明您根本没有安装 Java,或者系统上的 Java 配置错误。我们建议使用 find 命令手动查找 Java 文件,或者直接在系统上重新安装 Java JRE 或 JDK。确定 Java 主目录的另一种方法是结合使用
dirname
和下面的其他命令。这是通过发现javac
可执行文件的根目录来实现的。$ dirname $(dirname $(readlink -f $(which javac))) /usr/lib/jvm/java-19-openjdk-amd64
另一种方法是检查
java
命令的路径。我们可以使用which
命令来实现这一点。这里唯一棘手的部分是该命令通常会引用符号链接。并且,该符号链接可能还指向另一个符号链接。查看下面我们从测试系统中获取的输出,以了解我们的意思。$ which java /usr/bin/java
java
命令指向/usr/bin/java
– 让我们看看它去了哪里。$ ls -l /usr/bin/java lrwxrwxrwx 1 root root 22 May 22 23:43 /usr/bin/java -> /etc/alternatives/java
它指向另一个符号链接。进一步调查可得出 Java 可执行文件的位置,从而得出 Java 主目录:
$ ls -l /etc/alternatives/java lrwxrwxrwx 1 root root 43 Jun 6 01:50 /etc/alternatives/java -> /usr/lib/jvm/java-19-openjdk-amd64/bin/java
在我们的测试系统上,Java 主目录显示为
/usr/lib/jvm/java-19-openjdk-amd64
。 Java 可执行文件本身位于bin/Java
中,但请注意,这部分不是主目录。
在 Linux 上设置 Java 主目录
我们将通过配置 JAVA_HOME
环境变量来设置 Linux 系统上的 Java 主目录。
在 nano 或您喜欢的文本编辑器中打开用户的
~/.bashrc
文件。$ nano ~/.bashrc
在此文件的底部,添加以下行:
export JAVA_HOME='/usr/lib/jvm/java-19-openjdk-amd64'
请务必将上面的目录替换为您的实际 Java 主目录(所有 Java JDK 和 JRE 文件都位于其中)。
然后,保存更改并退出文件。然后,在终端中运行以下命令以使更改生效:
$ source ~/.bashrc
全做完了。
结束语
在本教程中,我们了解了如何在 Linux 系统上查找和设置 JAVA 主目录。我们学习了如何检查主目录的环境变量、使用 Java 命令来发现主目录以及通过跟踪 Java 可执行文件的路径来手动确定主目录。假设您一开始就正确安装了 Java,其中一种方法肯定适用于任何 Linux 环境。我们还学习了如何设置 JAVA_HOME 目录环境变量。