如何永久地在Mac中设置JAVA_HOME?

Vis*_*nde 39 java macos java-home

我想JAVA_HOME通过进入export JAVA_HOME=/Library/Java/Home终端进行设置.它设置JAVA_HOME当前会话.

如何永久设置?

Jon*_*bbe 46

我知道这个问题已经有一段时间了,但我只想分享我今天遇到的以下信息.

您可以使用它/usr/libexec/java_home -v <version you want>来获取所需的路径JAVA_HOME.例如,要获取1.7 JDK的路径,您可以运行/usr/libexec/java_home -v 1.7它,它将返回JDK的路径.在您.profile.bash_profile只是添加

export JAVA_HOME=`/usr/libexec/java_home -v <version>`
Run Code Online (Sandbox Code Playgroud)

你应该好.或者,尝试并说服维护者使用您使用的java工具来获取他们需要的版本.

要打开'.bash_profile',请在终端中键入以下内容:

nano ~/.bash_profile 
Run Code Online (Sandbox Code Playgroud)

并将以下行添加到该文件:

export JAVA_HOME=`/usr/libexec/java_home -v <version>`
Run Code Online (Sandbox Code Playgroud)

按CTRL + X退出bash.按"Y"保存更改.

要检查路径是否已添加,请在终端中键入以下内容:

source ~/.bash_profile
echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

  • 这不是答案,因为它没有永久设置我认为的“JAVA_HOME”环境变量,这正是 OP 所要求的。这只是“当前会话的临时”。重新启动会将其更改回永久设置的变量。 (4认同)
  • 关于Android Addict的评论:没有针对外壳的“永久”环境变量,这就是为什么您拥有.bash_profile,.bashrc,.zshrc等的原因。此答案将解决问题,应选择该答案。 (2认同)
  • 就我而言,这仅适用于该实例。虽然用“zshrc”替换“bash_profile”对我有用 (2认同)

Abd*_*sit 45

我在 MAC Catalina 中遇到了同样的问题,如果我编辑 .bash_profile 我发现 export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home 但是当我运行终端 echo $JAVA_HOME 它返回空, 后来我发现文件 .zshrc 丢失了我用

touch .zshrc 
Run Code Online (Sandbox Code Playgroud)

然后编辑它nano .zshrc并写

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

这永久解决了我的问题

  • 为 MAC Catalina 解决工作...!感谢您分享提示! (2认同)
  • 哇……太棒了。感谢分享。 (2认同)

小智 15

在 Mac 上设置 Java 路径:

  1. 在mac上打开终端,将路径改为root cd ~
  2. vi .bash_profile(这将打开 bash_profile 文件)
  3. 点击I插入文本并使用下面的文本设置JAVA_HOME和PATH

    • 导出 JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home'
    • 导出路径=$JAVA_HOME/bin:$PATH

      1. 输入 :wq 保存并退出文件。
      2. 键入 source .bash_profile 以执行 .bash_profile 文件。
      3. 您可以输入 echo $JAVA_HOME 或 echo $PATH


Mil*_*vić 14

macOS 11 Big Sur以下位置安装 Java :

  • 最简单的方法是选择 OpenJDK 11 (LTS)、HotSpot JVM 和 macOS x64 是在此处获取最新版本:adaptopenjdk.net
  • 选择 macOS 和 x64 并下载JDK(约 190 MB),这会将OpenJDK11U-jdk_x64_mac_hotspot_11.0.9_11.pkg文件放入您的~/Downloads folder
  • 单击 pkg 文件,将安装到以下位置: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk 在此处输入图片说明
  • 快完成了。打开终端后,可以像这样确认JDK安装成功:java --version
    • 输出:
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
Run Code Online (Sandbox Code Playgroud)
  • JAVA_HOME是一个重要的环境变量,正确使用它很重要。这是一个技巧,即使在安装了 Java 更新之后,我也可以使环境变量保持最新。在~/.zshrc,我像这样设置变量:export JAVA_HOME=$(/usr/libexec/java_home)
  • 在以前的 macOS 版本中,这是在~/.bash_profile. 无论如何,打开一个新终端并验证:echo $JAVA_HOME
    • 输出: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home

测试:编译并运行您的 Java 程序

  • 打开文本编辑器,从下面复制代码并将文件另存为HelloStackoverflow.java.
public class HelloStackoverflow {
  public static void main(String[] args){
    System.out.println("Hello Stackoverflow !");
  }//End of main
}//End of HelloStackoverflow Class
Run Code Online (Sandbox Code Playgroud)
  • 从终端将工作目录设置为包含 的目录HelloStackoverflow.java,然后键入命令:
javac HelloStackoverflow.java
Run Code Online (Sandbox Code Playgroud)
  • 如果幸运的话,什么都不会发生

  • 事实上,发生了很多事情。javac是 Java 编译器的名称。它将 Java 翻译成Java BytecodeJava 虚拟机 (JVM) 的一种汇编语言。Java 字节码存储在一个名为HelloStackoverflow.class.

  • 运行:输入命令:

java HelloStackoverflow

# output:
# Hello Stackoverflow !
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 从昨天开始,我试图将其写入 .bash_profile 文件,并想知道为什么它不起作用。**.zshrc** 文件!!!你救了我的命。谢谢 (3认同)
  • @Kerem 这取决于你的默认 shell 集是什么。你可以通过执行 `echo $SHELL` 来知道这一点,如果是 `/bin/bash` 那么你需要在 .bash_profile 中进行更改,如果它是 `/bin/zsh` 那么你应该在 .zshrc 文件中设置它。 (3认同)

eri*_*icn 10

除了 bash/zsh 终端的设置(其他答案都很好地涵盖了这些设置),如果您想要一个用于终端 + GUI 应用程序的永久系统环境变量(适用于 macOS Sierra;也应该适用于 El Capitan):

launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)
Run Code Online (Sandbox Code Playgroud)

(这会将 JAVA_HOME 设置为最新的 1.8 JDK,您可能已经经历了多个更新,例如 javac 1.8.0_101、javac 1.8.0_131)

当然,将 1.8 更改为 1.7 或 1.6(真的?)以满足您的需要和您的系统

  • 这是 GUI 应用程序的正确答案(虽然不是 OP 的问题......)。在 macOS Sierra 上像魅力一样工作。 (2认同)

Dil*_*mar 9

试试这个链接 http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/

这解释正确,我做了以下工作以使其工作

  1. 打开终端
  2. 类型 vim .bash_profile
  3. 在我的例子中输入你的 java 安装目录 export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
  4. 单击ESC然后键入:wq(在 vim 中保存并退出)
  5. 然后输入 source .bash_profile
  6. echo $JAVA_HOME 如果你看到路径,你就已经设置好了。

希望能帮助到你。


小智 9

要在 Mac 中永久设置 JAVA_HOME,我尝试了以下步骤。

  1. 下载 Java JDK 并将其安装到您的 Mac。当您安装Java JDK版本时,MAC中默认会安装在以下位置。

/库/Java/JavaVirtualMachines

  1. 打开.bash_profile文件(这里我的Mac版本是MacOS High Sierra。您可能需要在某些不同的MacOS版本中打开.zshrc文件)。

atom ~/.bash_profile

  1. 将以下内容添加到您的 bash_profile 文件中。

相应地更改JDK版本

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home'
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
  1. 打开终端并执行以下操作。

source ~/.bash_profile

打开一个新终端并检查“echo $JAVA_HOME”

谢谢。


Ela*_*los 7

这里的答案总体上是正确的,但对我来说,我不知道我需要做一些事情source ~/.bash_profile才能真正使其发挥作用。

所以完整的答案是:

nano ~/.zshenv // or
nano ~/.zshrc // or
nano ~/.bash_profile
//add this line to zshrc and bash_profile if you want to be 100% sure
export JAVA_HOME=$(/usr/libexec/java_home)
//save
source ~/.bash_profile //the KEY that generally isn't in the answers
source ~/.zshrc //I didn't do this one, but maybe you need it
Run Code Online (Sandbox Code Playgroud)


Mig*_*Prz 5

此链接可以帮助您:http://developer.apple.com/library/mac/#/legacy/mac/library/qa/qa1067/_index.html

此外,您可以将环境变量放在以下文件之一中:

~/.bashrc
~/.bash_profile
~/.profile
Run Code Online (Sandbox Code Playgroud)

  • 网页未找到! (4认同)

小智 5

在您的终端上运行此命令(此处 -v11 适用于版本 11(java11))-:

/usr/libexec/java_home -v11
Run Code Online (Sandbox Code Playgroud)

你会在你的终端上得到这样的路径 -:

/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

现在您需要在任何编辑器中打开您的 bash 配置文件,例如 VS Code

如果你想在 vs 代码中编辑你的 bash_profile 然后运行这个命令 -:

code ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

否则运行此命令,然后按 i 插入路径。-:

open ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

您将获得 .bash_profile 现在您需要添加路径,因此将其添加到 .bash_profile (您从第一个命令获得的路径)中-:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

如果您使用的是代码编辑器,那么现在转到终端并运行此命令以保存更改 -:

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

否则按 esc 然后 :wq 退出 bash_profile 然后转到终端并运行上面给出的命令。过程完成。现在您可以使用此命令进行检查 -:

echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

你会得到/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home


Fat*_*n P 0

添加以下内容

setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Home
Run Code Online (Sandbox Code Playgroud)

在你的 ~/.login 文件中: