如何在 Ubuntu Linux 中正确地设置 JAVA_HOME 变量
创始人
2024-03-02 08:52:26
0

如果你 在 Ubuntu 上运行 Java 程序 ,使用 Eclipse、Maven 或 Netbeans 等等,你将需要将 JAVA_HOME 环境变量设置为正确的路径。否则,你的系统将会向你控诉 “java_home 环境变量没有设置”。

在这篇初学者教程中,我将向你展示在 Ubuntu 上正确地设置 JAVA_HOME 变量的步骤。这些步骤应该也适用于大多数的其它的 Linux 发行版。

设置过程包含这些步骤:

  • 确保已安装 Java 开发工具包(JDK)。
  • 查找 JDK 可执行文件的正确的位置。
  • 设置 JAVA_HOME 环境变量,并永久更改它。

步骤 1: 核查 JDK 是否已经安装

核查 Java 开发工具包(JDK)是否已经安装在你的 Linux 系统上的最简单的方法是运行这个命令:

javac --version

上面的命令将核查 Java 编译器的版本。如果已经安装了 Java 编译器,它将显示 Java 版本:

Java Compiler is installed

如果上面的命令显示像这样未找到 javac 命令的错误信息,你得先安装 JDK :

Java Compiler is not installed

如果在你的系统上并没有安装 Java 编译器,使用这条命令来安装 Java 开发工具包 (JDK):

sudo apt install default-jdk

这将在你当前的 Ubuntu 版本中安装默认的 Java 版本。如果你需要一些其它版本的 Java 版本,那么你必须 在 Ubuntu 中安装 Java 时 具体指出它的版本。

在你确保 Java 编译器存在于你的系统之中后,接下来就到了查找其位置的时候了。

步骤 2: 获取 JDK 可执行文件(Java 编译器)的位置

可执行文件通常位于 /usr/lib/jvm 目录之中。但我不会让你来玩一个猜谜游戏,让我们来找出 Java 可执行文件的路径。

使用 which 命令 来获取 Java 编译器可执行文件的位置:

which javac

在这里的问题是,它给出的位置实际上是一个 符号链接 。你将需要按照下图执行几次:

最简单的方法是直接使用下面这条命令跟随符号链接来以获取实际的可执行文件:

readlink -f `which java`

readlink 命令会跟随一个符号链接。我在 which java 的外侧使用 readlink 将会使用 which java 的输出来替换要检查的符号链接,这被称之为命令替换。因此,在这个实例中,上面的命令大体上相当于 readlink -f /usr/bin/java

在我的示例中,可执行文件的位置是 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 。对你来说可能会不一样。在你的系统中,复制上述命令所获取的正确的路径。你知道,你可以 在 Ubuntu 的终端中复制和粘贴

步骤 3: 设置 JAVA_HOME 变量

现在,你已经获取了位置,使用它来设置 JAVA_HOME 环境变量:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java

核查 JAVA_HOME 目录的值:

echo $JAVA_HOME

尝试在同一个终端中运行你的 Java 程序或工程,并查看它是否工作。

这尚未结束。你刚刚声明的 JAVA_HOME 环境变量是临时的。如果你关闭这个终端或开始一个新的会话,它将会再次变成空的。

为了“永久地”设置 JAVA_HOME 变量,你应该将其添加到你的家目录中的 .bashrc 文件中。

你可以 在 Linux 终端中使用 Nano 编辑器来编辑文件。 如果你不想使用它,并想采取一种简单的复制和粘贴的方法,使用下面的命令:

首先备份你的 .bashrc 文件(以防万一你把它弄坏了,你还可以将其再恢复回来):

cp ~/.bashrc ~/.bashrc.bak

接下来,使用 echo 命令来追加 在这一节开头使用的 export 命令。你应该适当地更改下面的命令,以便其正确地使用你的系统所显示的路径

echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java" >> ~/.bashrc

验证它已经被正确地添加到文件的结尾处:

tail -3 ~/.bashrc

上面的 tail 命令 将显示所具体指定文件的最后 3 行。

这里是上面的三个命令的全部的输出:

现在,即使你退出会话或重新启动系统,JAVA_HOME 环境变量都仍将设置为你所具体指定的值。这就是你所想要的,对吧?

注意,如果你将来更改默认的 Java 版本,你将需要更改 JAVA_HOME 环境变量的值并将其指向正确的可执行文件的路径。

我希望这篇教程不仅会帮助你设置 JAVA_HOME 环境变量,也会教会你如何完成这项工作。

如果你仍然面临难题或者有一些疑问或建议,请在评论区告诉我。


via: https://itsfoss.com/set-java-home-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Edge.js发布:为AI...
Wasmer公司推出了Edge.js,这是一个基于WebAssem...
2026-03-26 01:38:53
AI编程助手飞算JavaA...
钛媒体App 1月27日消息,获中国信通院认证生成完整工程代码的A...
2026-01-27 10:49:28
学java要学linux吗...
嘿,朋友们!今天咱们来聊聊一个很多Java新手都会纠结的问题:学j...
2026-01-22 09:49:54
Java、Python等开...
IT之家 9 月 24 日消息,开源安全基金会(OpenSSF)昨...
2025-09-24 14:25:34
怎么用AI做短视频赚钱?小...
嘿,你是不是也刷到过那些爆火的短视频,心想:“这玩意儿咋这么赚钱?...
2025-06-06 22:12:18
JAVA集合知识整理
Java集合知识整理 HashMap相关 HashMap的底层数据...
2025-06-01 22:12:08

热门资讯

PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...