97

我正在尝试通过在终端JAVA_HOME输入来设置。export JAVA_HOME=/Library/Java/Home它设置JAVA_HOME当前会话。

我怎样才能永久设置它?

4

20 回答 20

107

你可以/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>`

你应该很好。或者,尝试说服您使用的 Java 工具的维护者使用此方法来获取他们需要的版本。

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

nano ~/.bash_profile 

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

export JAVA_HOME=`/usr/libexec/java_home -v <version>`

按 CTRL+X 退出 bash。按“Y”保存更改。

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

source ~/.bash_profile
echo $JAVA_HOME
于 2013-10-29T16:30:04.303 回答
52

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

touch .zshrc 

然后编辑它nano .zshrc并写

source ~/.bash_profile

这永久解决了我的问题

于 2019-11-19T06:16:26.243 回答
18

在 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'
    • 导出 PATH=$JAVA_HOME/bin:$PATH

      1. 输入 :wq 保存并退出文件。
      2. 键入 source .bash_profile 以执行 .bash_profile 文件。
      3. 您可以键入 echo $JAVA_HOME 或 echo $PATH
于 2018-09-27T06:37:35.917 回答
17

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

  • 最简单的方法是选择 OpenJDK 11 (LTS)、HotSpot JVM 和 macOS x64 是在这里获取最新版本:adoptopenjdk.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)
  • 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
  • 从终端将工作目录设置为包含 的目录HelloStackoverflow.java,然后键入命令:
javac HelloStackoverflow.java
  • 如果你幸运的话,什么都不会发生

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

  • 运行:输入命令:

java HelloStackoverflow

# output:
# Hello Stackoverflow !

在此处输入图像描述

于 2020-12-05T21:48:56.490 回答
11

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

launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)

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

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

于 2017-06-11T10:06:22.180 回答
11

试试这个链接 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如果你看到了路径,你就都准备好了。

希望能帮助到你。

于 2015-11-09T15:44:36.580 回答
7

此链接可能对您有所帮助:https ://developer.apple.com/library/archive/qa/qa1067/_index.html

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

~/.bashrc
~/.bash_profile
~/.profile
于 2013-02-05T08:09:27.743 回答
7

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

/usr/libexec/java_home -v11

您将在终端上获得类似这样的路径-:

/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home

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

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

code ~/.bash_profile

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

open ~/.bash_profile

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

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home

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

source ~/.bash_profile

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

echo $JAVA_HOME

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

于 2020-11-27T13:22:11.950 回答
5

要在 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
  1. 打开终端并执行以下操作。

source ~/.bash_profile

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

谢谢。

于 2021-01-17T07:41:47.953 回答
3

/usr/libexec/java_home -v <version>首先,通过运行命令替换您正在运行的任何版本的 OpenJDK,找出您的 java home 在哪里。

接下来用于vim ~/.bash_profile编辑您的 bash 配置文件。添加export JAVA_HOME="<java path>"替换为上一步中找到的 java home 的路径。

最后,运行命令source ~/.bash_profile

这应该永久设置您的 JAVA_HOME 环境变量。

确保它正常运行echo $JAVA_HOME并确保它返回您设置的路径

于 2020-09-01T00:38:15.290 回答
3

1) 第一步是确定您是否安装了 Java 并运行您的系统。

which java

通常,它应该是 /usr/bin/java。

2) JAVA_HOME本质上是包含名为bin的子目录的目录的完整路径,该子目录又包含java

cd /Library/Java/
  • 您应该在/Java文件夹中有bin文件夹,并且它必须包含[java]可执行包。

Mac OS 的文件夹结构

3.1) 如果您只想为当前会话设置路径,请在终端中执行此命令export JAVA_HOME=/Library/Java

3.2)如果你想让它持久化,你必须将命令添加到你的~/.bash_profile文件中

  • 打开终端vi ~/.bash_profile
  • 将这些行添加到终端export JAVA_HOME=/Library/Java/Home并保存
  • 执行以下命令source ~/.bash_profile

4) 验证您已正确添加 JAVA_HOME 路径。下面的命令应该为您提供正确的 Java 版本。

就是这样,你准备好使用了!!

于 2020-02-08T09:40:57.873 回答
3

sql- surfer和 MikroDel ,

其实,答案并不复杂!您只需要添加:

export JAVA_HOME=(/usr/libexec/java_home)

到您的外壳配置文件/配置文件。唯一的问题是 - 您使用的是哪个外壳?如果您使用例如 FISH,则将该行添加到.profile.bash_profile根本不起作用。将它添加到config.fish文件中可以解决问题。永久。

于 2019-04-25T08:22:26.860 回答
2

在 .bashrc 或 .zshrc 中声明两个导出:

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8) 
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)

添加别名以进行快速更改:

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'

将默认设置为 Java 11

java11

导出路径

export PATH=$JAVA_HOME/bin:$PATH

您可以在 .bashrc/zshrc 文件中将 java11 更改为 java8 以永久更改您的 java 版本

于 2020-01-15T08:53:36.173 回答
2

添加到 Dilips 的答案中,如果您使用的是 JDK 9,请在第 3 步中使用以下内容(我的 JDK 版本是 9.0.4):

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
于 2018-03-08T03:38:51.193 回答
2

这里的答案通常是正确的,但对我来说,我不知道我需要做一些事情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
于 2021-11-12T15:38:17.610 回答
1

如果你用的是鱼壳。然后可以在 .config/fish/config.fish 中设置所有变量

vim .config/fish/config.fish

添加以下行

set -g JAVA_HOME "your_path_to_jdk"

保存并退出 vim。

这应该设置您的 JAVA_HOME。谢谢

于 2020-11-11T16:45:41.000 回答
1

要在 mac 中永久设置 JAVA_HOME,请确保您的系统中安装了 JDK,如果未安装 jdk,您可以从这里下载它 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 .html

安装 jdk 后,请按照下列步骤操作:-

1) 打开终端

2)输入“vim .bash_profile”

3) 按“i”编辑或输入路径

4)输入你的java安装目录:- export JAVA_HOME=$(/usr/libexec/java_home)

5) 点击 ESC 然后输入 ":wq" (在 vim 中保存并退出)

6)然后输入“source .bash_profile”

7)如果你看到你设置的路径,输入“echo $JAVA_HOME”。

谢谢你

于 2019-03-24T16:36:29.780 回答
1

如果您使用的是最新版本的 macOS,则无法使用 ~/.bash_profile 导出环境变量,因为 bash shell 在最新版本的 macOS 中已弃用。

  • 在你的终端中运行/usr/libexec/java_home,你会得到类似的东西/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
  • 添加export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home到 .zshrc
于 2020-10-27T08:16:49.227 回答
0

添加以下内容

setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Home

在您的 ~/.login 文件中:

于 2013-02-05T08:08:51.973 回答
0

找出 jenv 会将 $JAVA_HOME 设置为短版本,例如“/Users/*****/.jenv/versions/1.8”。

必须卸载 jenv 才能使 $JAVA_HOME 设置像“JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home”一样工作

于 2021-06-01T21:10:26.007 回答