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

时间:2013-02-05 08:05:03

标签: java macos java-home

我想在终端输入JAVA_HOME来设置export JAVA_HOME=/Library/Java/Home。 它为当前会话设置JAVA_HOME

如何永久设置?

20 个答案:

答案 0 :(得分:40)

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

您可以使用/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

答案 1 :(得分:5)

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

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

~/.bashrc
~/.bash_profile
~/.profile

答案 2 :(得分:4)

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

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

/Library/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'

谢谢。

答案 3 :(得分:4)

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

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

  1. 打开终端
  2. 输入vim .bash_profile
  3. 在我的案例export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
  4. 中键入您的java instalation目录
  5. 点击ESC,然后输入:wq(在vim中保存并退出)
  6. 然后输入source .bash_profile
  7. echo $JAVA_HOME如果您看到所有路径都已设置。
  8. 希望它有所帮助。

答案 4 :(得分:4)

除了其他答案所涵盖的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(真的吗?)

答案 5 :(得分:3)

macOS 11 Big Sur上安装Java:

  • 最简单的方法是选择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 enter image description here
  • 快完成了。打开终端后,可以像下面这样确认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 Update,也可以使环境变量保持最新状态。在~/.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 Bytecode,这是Java虚拟机(JVM)的一种汇编语言。 Java字节码存储在名为HelloStackoverflow.class的文件中。

  • 运行:键入命令:

java HelloStackoverflow

# output:
# Hello Stackoverflow !

enter image description here

答案 6 :(得分:3)

1)第一步是如果您已安装Java并正在运行系统。

which java

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

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

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

Folder structure for 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版本。

就这样,您就可以使用了!

答案 7 :(得分:2)

要在Mac上设置Java路径,

  1. 在Mac上打开终端,将路径更改为根cd〜
  2. vi .bash_profile(这将打开bash_profile文件)
  3. 单击 I 插入文本,然后使用以下文本设置JAVA_HOME和PATH

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

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

答案 8 :(得分:2)

首先,通过运行命令/usr/libexec/java_home -v <version>来确定您的Java主目录在哪里,用您正在运行的任何版本的OpenJDK替换。

接下来使用vim ~/.bash_profile编辑您的bash个人资料。添加export JAVA_HOME="<java path>"替换为在上一步中找到的Java主目录的路径。

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

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

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

答案 9 :(得分:1)

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

/usr/libexec/java_home -v11

您将在终端上获得如下路径::

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

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

如果要在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

答案 10 :(得分:1)

sql-surferMikroDel

实际上,答案并不那么复杂!您只需要添加:

export JAVA_HOME=(/usr/libexec/java_home)

到您的外壳配置文件/配置文件。唯一的问题是-您使用哪个外壳?例如,如果您使用的是FISH,则将该行添加到.profile.bash_profile中将完全无效。尽管可以将其添加到config.fish文件中。永久地。

答案 11 :(得分:1)

在.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文件中通过java8更改java11来永久更改您的Java版本

答案 12 :(得分:1)

如果您使用的是最新版本的macOS,则由于最新版本的macOS不推荐使用bash shell,因此无法使用〜/ .bash_profile导出环境变量。

  • 在您的终端中运行/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

答案 13 :(得分:0)

发现 jenv 会将 $JAVA_HOME 设置为一个简短的版本,例如“/Users/*****/.jenv/versions/1.8”。

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

答案 14 :(得分:0)

如果您使用的是鱼壳。然后可以在.config / fish / config.fish

中设置所有变量
vim .config/fish/config.fish

添加以下几行

set -g JAVA_HOME "your_path_to_jdk"

保存并退出vim。

这应该设置您的JAVA_HOME。谢谢

答案 15 :(得分:0)

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

创建了该文件。
touch .zshrc 

然后通过nano .zshrc进行编辑并编写

source ~/.bash_profile

哪个可以永久解决我的问题

答案 16 :(得分:0)

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

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

答案 17 :(得分:0)

Terminal.app是终端模拟器。它默认执行你的shell,bash。将命令放在.bashrc中的主文件夹中,任何新的会话都应该选择它。有关bash的更多信息,请查看manual

答案 18 :(得分:-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”。

谢谢

答案 19 :(得分:-1)

添加以下

setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Home
你的〜/ .login文件中的