在Linux系统上查找Java SDK位置
概述
查找软件的安装目录是一个非常常见的操作。一个常见的原因是更新 PATH 环境变量。例如,Java 开发人员经常需要查找 Java 的安装目录。本文介绍如何在 Linux 上查找 JDK 的位置。此处描述的方法适用于这些操作系统的 32 位和 64 位版本。
JDK 包含许多程序员可以使用的工具。在本文中,我们将了解其中的一些工具。我们将从最基本的工具开始:java 命令。
Java 命令
java 命令是 Java 程序员可以使用最重要的命令之一。它允许您运行用 Java 编程语言编写的程序。java 命令有两个主要用途。首先,它允许您直接从命令行执行 Java 代码。其次,它提供了一种构建您自己的 Java 应用程序的简便方法。
要使用 java 命令,请键入 java,后跟包含要运行的程序的类或包的名称。例如,如果您在当前工作目录中有一个名为 HelloWorld.java 的文件,则可以运行以下命令来编译和运行程序:
$ javac HelloWorld.java $ java HelloWorld
如果您在 java 命令后没有指定任何参数,则使用默认的 JRE 版本。您还可以设置 JAVA_HOME 环境变量以指向不同的 JRE。
系统中的多个 Java 版本
在系统上使用多个 Java 版本时,您可能需要安装其他版本的 Java 运行时环境 (JRE)。为此,必须使用 update-java-alternatives 命令。此命令更新指向 JRE 各个版本的符号链接。
例如,假设您在系统上安装了三个版本的 JRE:1.5.0_10、1.6.0_20 和 1.7.0_25。如果您想使用最新版本的 JRE,您首先会删除所有现有版本的 JRE:
$ sudo apt-get purge openjdk*
然后,您将创建一个指向最新版本 JRE 的新符号链接:
sudo ln -sf /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java /usr/bin/java
最后,您将更新指向其他 JRE 版本的符号链接,以指向新创建的符号链接: sudo update-alternatives --config java
此过程可确保在调用 java 命令时始终选择正确的 JRE 版本。
Java 开发工具包安装目录
JDK 包含多个组件,包括编译器、开发库和开发 Java 应用程序所需的工具。这些组件通常存储在 JDK 安装目录下的子目录中。在 Linux 上,JDK 安装目录通常位于 /usr/lib/java/。
请注意,JDK 安装目录可能会因您使用的发行版而异。例如,在 Ubuntu 10.04 LTS 上,JDK 位于 /usr/share/java/。
查找 JDK 安装目录
有几种方法可以在 Linux 上查找 JDK 安装目录。最简单的方法是检查 /etc/profile 文件的内容。/etc/profile 文件包含有关用户主目录位置以及每个用户帐户的 JDK 安装目录位置的信息。
使用 update-java-alternatives 命令
Update-Java-Alternatives 更新 Java 运行时和开发工具包的所有替代项。在搜索 JDK 或 JVM 安装目录时,我们可以将其与 -l 参数一起使用:
$ update-java-alternatives -l java-1.14.0-openjdk-amd64 1411 /usr/lib/jvm/java-1.14.0-openjdk-amd64
使用 update-alternatives 命令
update-alternatives 工具维护符号链接以确定在未指定特定程序时系统使用哪些程序。您可以将 -jar 命令行选项与 -list 选项结合使用以列出 Java SDK 或 JRE 的位置。
$ update-alternatives --list java /usr/lib/jvm/java-14-openjdk-amd64/bin/java
使用which 和 readlink 命令
which 命令显示文件的完整路径,readlink 命令解决符号链接。我们可以结合使用这些命令来分别查找 JDK 和 JRE 的位置:
$ readlink -f $(which javac) /usr/lib/jvm/java-14-openjdk-amd64/bin/javac $ readlink -f $(which java) /usr/lib/jvm/java-14-openjdk-amd64/bin/java
如果您使用 -f 选项,它将以递归方式跟踪每个符号链接。
结论
我们已经介绍了几种查找 Java 位置的不同方法。在使用 Linux 操作系统时,我们可以在日常生活中使用这些命令行工具。