在 macOS 上设置 JAVA_HOME
JAVA_HOME
是安装 Java Runtime Environment (JRE) 或 Java Development Kit (JDK) 后设置的可选操作系统环境变量。 JAVA_HOME 环境变量指示 JDK 或 JRE 安装位置。
所有包含 Java 安装的操作系统(包括 Windows、Ubuntu、Linux、Mac 和 Android)都必须设置此变量。 但在本文中,我们将讨论如何在 macOS 上设置 JAVA_HOME 环境变量。
定义 JAVA_HOME
环境变量的新方法使我们能够动态识别和使用系统上当前安装的 Java 版本,如果安装了多个 Java 版本,则可以在它们之间进行切换。
本文将为您提供在 macOS 上设置 JAVA_HOME 环境变量的简单步骤。
什么是JAVA_HOME环境变量
本地安装的Java运行时不使用JAVA_HOME环境变量。 相反,其他需要 Java 运行时的桌面软件将要求 JAVA_HOME 变量的操作系统来确定运行时的位置。
一旦确定了 JDK 或 JRE 安装位置,这些应用程序就可以启动基于 Java 的进程、启动 Java 虚拟机并使用命令行工具(例如 Java 归档实用程序或 Java 编译器),所有这些都包含在 Java 安装。
在 macOS 上设置 JAVA_HOME 环境变量 要在 macOS 上设置 JAVA_HOME 环境变量,首先,您必须确定 macOS 已安装的 Java 版本。 有一个方便的工具可以确定 macOS 10.5 及以上安装的 Java 版本。
例如,要打印 Mac 上安装的最新 Java 版本,请打开终端窗口并输入以下命令。
/usr/libexec/java_home
此命令动态查找用户的 Java 首选项中列出的最新 Java 版本。
现在,打开 ~/.bash_profile
并在任何文本编辑器中插入以下内容:
export JAVA_HOME=$(/usr/libexec/java_home)
您可以使用键盘上的 ESC 键并输入 :wq 保存此文件。 这将保存文件并结束。
保存文档,然后退出。 在终端窗口类型中,立即应用对 .profile 文件的更改。
source ~/.profile
在终端窗口中,输入:
java -version
它将打印 Mac 上安装的当前 Java 版本。
完成此步骤后,您只需运行下面列出的命令,就可以使用 JAVA_HOME 环境变量了。
source ~/.bash_profile OR source ~/.zshrc
执行上述步骤后,运行以下命令以确保计算机的 JAVA_HOME
环境变量配置正确。
echo $JAVA_HOME
该命令的结果应如下例所示。 这是JDK的安装位置。
/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
JAVA_HOME 和 macOS 11 Big Sur
zsh 是 macOS 10.15 Catalina 上的默认终端 shell,之后,我们可以在 /.zshenv
或 /.zshrc
中设置 JAVA_HOME 环境变量。
在终端中打开 ~/.zshenv 并输入:
% nano ~/.zshenv
现在,在 ~/.zshenv
中添加以下行。
export JAVA_HOME=$(/usr/libexec/java_home)
之后,获取文件并打印 JAVA_HOME,就完成了。
在终端中,输入:
% source ~/.zshenv
% echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home
JAVA_HOME 和旧版 macOS X
我们必须将 JAVA_HOME 设置为实际路径,因为 /usr/libexec/java_home 函数在早期版本的 macOS X 上不存在。
Open the ~/.bash_profile
在终端中,输入:
% nano ~/.bash_profile
在 ~/.bash_profile
中插入以下行。
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
现在,获取文件并打印 JAVA_HOME。
% source ~/.bash_profile
% echo $JAVA_HOME
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
JAVA_HOME环境变量的全局设置
上述命令将为单个用户建立JAVA_HOME环境变量。 但是,如果您希望为使用系统的每个用户全局设置此变量,会发生什么情况?
为单个用户设置 JAVA_HOME 环境变量的步骤相同,但我们改用 /etc/profile 或 /etc/environment 文件。
打开 /etc/environment 并插入以下内容:
JAVA_HOME=/path/to/java_installation
请注意 /etc/environment
是赋值表达式的集合而不是脚本(这就是不使用导出的原因)。 当登录时,它会读取这个文件。
要使用 /etc/profile
设置 JAVA_HOME,您将在文件中插入以下内容:
export JAVA_HOME=/path/to/java_installation
要加载变量,请执行 source
命令。
source /etc/profile
现在您可以检查 JAVA_HOME 变量的值。
echo $JAVA_HOME
结果应该是 JDK 安装的路径。
/usr/lib/jvm/java-8-oracle
总结
每个程序员都应该能够在开始任何 Java 编程之前设置 JAVA_HOME 环境变量,因为许多基于 Java 的工具、应用程序和库都依赖于它。
例如,要执行Eclipse、NetBeans、Tomcat等开发工具,您必须调整操作系统的PATH环境变量,因为这些程序需要JDK或JRE才能运行。
在本文中,我们几乎涵盖了如何为单用户设置 JAVA_HOME 环境变量的所有领域,并且还讨论了它的全局设置。 按照这些简单的步骤,您将在 macOS 上快速设置 JAVA_HOME 环境变量。
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,