如何在 Ubuntu Linux 中正确设置 JAVA_HOME 变量
如果您在 Ubuntu 上使用 Eclipse、Maven 或 Netbeans 等运行 Java 程序,则需要将 JAVA_HOME 设置为您的路径。否则,你的系统会抱怨“java_home 环境变量未设置”。
在本初学者教程中,我将展示在 Ubuntu 上正确设置 Java Home 变量的步骤。这些步骤对于大多数其他 Linux 发行版也应该有效。
该过程包括以下步骤:
确保已安装 Java 开发工具包 (JDK)。
查找 JDK 可执行文件的正确位置。
设置 JAVA_HOME 变量并使更改永久化。
第1步:检查JDK是否安装
检查 Linux 系统上是否安装了 Java 开发工具包 (JDK) 的最简单方法是运行以下命令:
javac --version
上面的命令检查Java编译器的版本。如果安装了,会显示Java版本。
如果该命令显示类似 javac 命令未找到的错误,则必须安装 JDK。
如果您的系统上未安装 Java 编译器,请使用以下命令安装 Java 开发工具包:
sudo apt install default-jdk
这将在您当前的 Ubuntu 版本中安装默认的 Java 版本。如果您需要其他特定的 Java 版本,则必须在 Ubuntu 上安装 Java 时指定它。
一旦确定 Java 编译器存在于您的系统上,就可以找到它的位置了。
步骤 2:获取 JDK 可执行文件(Java 编译器)的位置
可执行文件通常位于 /usr/lib/jvm 目录中。我不会让你一个人玩猜谜游戏。相反,让我们找出 Java 可执行文件的路径。
使用which命令获取Java编译器可执行文件的位置:
which javac
这里的问题是它给出的位置实际上是一个符号链接。你必须遵循它几次:
当您找到类似 /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 的路径时,您可以从中删除 /bin/javac 以获得类似 / 的内容usr/lib/jvm/java-11-openjdk-amd64
一种更简单的方法是使用以下命令跟踪符号链接并直接获取实际的可执行文件:
readlink -f `which javac` | sed "s:/bin/javac::"
readlink 命令遵循符号链接。我在 which java 周围使用了`。这称为命令替换,它用命令的输出替换命令。然后使用 Sed 将 /bin/javac 替换为空,从而将其完全删除。
在我的示例中,可执行文件的位置是 /usr/lib/jvm/java-11-openjdk-amd64。对你来说可能会有所不同。复制从系统中的上述命令获得的正确路径。你知道,你可以在 Ubuntu 终端中复制粘贴。
第3步:设置JAVA_HOME变量
现在您已经获得了位置,请使用它来设置 JAVA_HOME 环境变量:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java
检查JAVA_HOME目录的值:
echo $JAVA_HOME
尝试在同一终端中运行您的程序或项目,看看它是否有效。
这还没有结束。您刚刚声明的 JAVA_HOME 变量是临时的。如果您关闭终端或启动新会话,它将再次为空。
要“永久”设置 JAVA_HOME 变量,您应该将其添加到主目录中的 bashrc 文件中。
您可以使用 Nano 编辑器在 Linux 终端中编辑文件。如果您不希望这样做并采用简单的复制粘贴方法,请使用以下命令:
备份你的 bashrc 文件(如果你弄乱了它,你可以把它找回来):
cp ~/.bashrc ~/.bashrc.bak
接下来,使用 echo 命令附加您在本节开头使用的导出命令。 更改以下命令以使用系统显示的正确路径。
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc
验证它是否已正确添加到文件末尾:
tail -3 ~/.bashrc
上面的 tail 命令将显示指定文件的最后 3 行。
这是上述三个命令的完整输出。
现在,即使您退出会话或重新启动系统,JAVA_HOME 变量仍将设置为您指定的值。这就是你想要的,对吗?
请注意,如果将来更改默认 Java 版本,则必须更改 JAVA_HOME 的值并将其指向正确的可执行路径。
我希望本教程不仅可以帮助您设置 Java Home,还可以教您如何进行设置。
如果您仍然遇到问题或有任何问题或建议,请在评论中告诉我。