迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 macOS 上设置 JAVA_HOME

作者:迹忆客 最近更新:2023/07/16 浏览次数:

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 环境变量。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 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 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便