在 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迭代器remove()方法
发布时间:2023/07/17 浏览次数:117 分类:Java
-
Java 开发人员经常需要在迭代时从 ArrayList 中删除元素或对象。在本文中,我们将了解迭代器的remove()方法和集合的remove()方法的工作原理有何不同。
查找 Java 中的内存泄漏
发布时间:2023/07/17 浏览次数:96 分类:Java
-
本文将教我们如何查找Java内存泄漏。未使用的项目占用额外的内存空间称为内存泄漏。 内存泄漏是有问题的,因为它们会堵塞内存资源并随着时间的推移降低系统性能。
Java 8 Stream 中的属性不同
发布时间:2023/07/17 浏览次数:171 分类:Java
-
本文通过属性演示了在 Java 中使用流的独特功能。Java 8 Stream 中的属性不同 Java 8 Stream 有一个 distinct() 方法,可以过滤列表中的重复项。
在 Java 中将 Iterable 转换为 Stream
发布时间:2023/07/17 浏览次数:51 分类:Java
-
在本文中,我们将学习一种将 Iterable 转换为 Stream 的方法。在 Java 中使用 StreamSupport.stream() 方法将 Iterable 转换为 Stream
在 Eclipse 中更改 Java 版本
发布时间:2023/07/17 浏览次数:110 分类:Java
-
用户在处理特定项目时可能需要降级或升级 Java 版本。 在这种情况下,Eclipse IDE 允许我们更改特定项目的 JDK 版本。本文介绍了在 Eclipse IDE 中更改 Java 版本的分步指南。在 Eclipse 中下载并添加
在 Java 中使用 Fiddler 捕获 HTTPS 流量
发布时间:2023/07/17 浏览次数:59 分类:Java
-
Fiddler是一个Web调试代理工具,可以帮助开发人员调试Web应用程序。 它允许捕获网络流量并监控传入和传出的数据。本文将教我们设置Fiddler来捕获HTTPS流量。
用 Java 构建工具
发布时间:2023/07/17 浏览次数:53 分类:Java
-
本文主要关注Java构建工具。 首先,我们将了解什么是构建工具,然后我们将讨论 5 个最流行的 Java 工具。什么是构建工具 无论开发人员使用哪种编程语言来开发软件,构建工具在自动化构建过
Java 中的警报弹出窗口
发布时间:2023/07/17 浏览次数:149 分类:Java
-
Swing 库用 Java 显示警报弹出窗口。 本教程演示如何用 Java 创建警报消息。Java 中的警报弹出窗口 如上所述,Swing 库用 Java 创建警报弹出窗口。
Java 中的背景颜色
发布时间:2023/07/17 浏览次数:108 分类:Java
-
本文介绍如何在 Java 中更改背景颜色。Java 中的背景颜色 在 Java GUI 中更改背景颜色是一个简单的操作。 setBackground() 方法用于设置和更改 Java 中 JFrame 的背景颜色。