在MAC OSX 10.9上设置JAVA_HOME环境变量

isl*_*ero 118 java osx-mavericks

我刚买了一台全新的MacBook Pro.这是我有史以来的第一个MAC,我仍然试图抓住导航的方向.无论如何......我也是Java的新手,我在我的Windows PC上练习,然后才永久死亡.现在我在这个MAC上,我安装了JDK,现在我需要设置JAVA_HOME环境变量.我不知道该怎么做.

我尝试了一些这些指南,并没有走得太远.

http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/ http://www.youtube.com/watch?v=aCEPrODy68o

而且我非常确定这个让我创建了一个现在无用的文件:
youtube.com/watch?v=-cASjkF94dc

我能够找到终端,我想我创建了一些多个文件.我收到这样的消息:


(1)另一个程序可能正在编辑同一个文件.如果是这种情况,请注意在进行更改时不要以同一文件的两个不同实例结束.退出,或继续谨慎.


(2)此文件的编辑会话崩溃.如果是这种情况,请使用":recover"或"vim -r /Users/Erwin/.bash_profile"来恢复更改(请参阅":help recovery").如果您已经这样做,请删除交换文件"/Users/Erwin/.bash_profile.sw p"以避免此消息.

有些Mac专家可以帮助我解决这个问题并逐步设置Java环境吗?

Adr*_*scu 297

你要做的就是:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

并重新启动你的shell.

如果您安装了多个JDK版本并且希望它是特定版本,则可以使用该-v标志java_home:

echo export "JAVA_HOME=\$(/usr/libexec/java_home -v 1.7)" >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

  • 我想如果你做`source~/.bash_profile`而不是重新启动终端它会工作,对吗? (10认同)
  • 在 OSX 11 上。我们现在使用“.zshrc”,而不是 bash 配置文件。所以命令将是 `echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.zshrc` (5认同)
  • @ShobhitPuri 是的,它会的,我只是想让提问者保持简单。 (3认同)
  • `回声出口 "JAVA_HOME =\$(在/ usr/libexec目录/ JAVA_HOME -v 1.7)" >>〜/ .bash_profile`如果你需要一个特定版本.在这种情况下为1.7. (3认同)
  • 当您说“shell”时,您的意思是我关闭终端窗口并重新打开它?另外,这是否会为我的 jdk 永久添加环境变量? (2认同)

Joh*_*nL4 22

我是通过推杆做到的

export JAVA_HOME=`/usr/libexec/java_home`
Run Code Online (Sandbox Code Playgroud)

(backtics)在我的.bashrc中.看看我对阿德里安答案的评论.


Sho*_*omu 18

在最新或更旧的 Mac OSX 上设置$JAVA_HOME环境变量。

下载并安装安装JDK

  1. 一、安装JDK
  2. 打开终端检查java版本

$ java -version

设置 JAVA_HOME 环境变量

  1. 打开.zprofile文件

$ open -t .zprofile

或创建. zprofile文件

$ open -t .zprofile

  1. 写入 .zprofile

export JAVA_HOME=$(/usr/libexec/java_home)

保存 .zprofile并关闭 bash 文件,然后在终端中写入以完美工作。

$ source .zprofile
Run Code Online (Sandbox Code Playgroud)

在终端设置测试

$ echo $JAVA_HOME  
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

  • 我还有一个问题“/usr/libexec/java_home”实际上是什么。答案:https://medium.com/zendesk-engineering/setting-java-home-on-mac-os-acd44e3a6027 (2认同)
  • /usr/libexec/java_home 是在 macOS 上设置 JAVA_HOME 的最简单的可维护方法。您可以使用 java_home 来: 查找所有已安装的 JDK。 (2认同)

Jer*_*ong 14

建议在设置JAVA_HOME环境变量之前检查默认终端 shell,通过以下命令:

$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)

如果您的默认终端是/bin/bash (Bash),那么您应该使用@Adrian Petrescu方法。

如果你的默认终端是/bin/zsh (Z Shell),那么你应该在~/.zshenv文件中设置这些环境变量,内容如下:

export JAVA_HOME="$(/usr/libexec/java_home)"
Run Code Online (Sandbox Code Playgroud)

同样,上面没有提到的任何其他终端类型,您应该在其各自的终端 env 文件中设置环境变量。


小智 11

我只花了 2 个小时来设置这个变量。其他答案对我来说不起作用。我使用的是 macOS Catalina 10.15.4。

首先,找到您实际的 Java SDK 主目录:

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

手动导航以确保您不会因版本不正确等而出现任何错误。对我来说,这是:

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

接下来,编辑终端的配置文件。如果您使用的是 zsh,这将是:

vim ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

如果您不使用 zsh,这将是:

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

在里面,在文件的任何地方添加以下新行:

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

重新启动您的终端应用程序(或源 ~/.bash_profile),它应该可以正常工作。

  • 这甚至在 macOS Monterey 上也有效。感谢这个!欣赏它! (7认同)
  • 谢谢。这在 MacOS BigSur 上对我有用 (4认同)

Bea*_*tor 11

M1快速指南

  1. 将java sdk添加到您的m1检查版本中

    java--版本

获取您的 mac 中安装的所有 java 版本

/usr/libexec/java_home -V
Run Code Online (Sandbox Code Playgroud)
  1. 从库中执行 Java 路径

    /usr/libexec/java_home

(如果有多个版本,请指定java版本,在我的例子中是-v17.0.5

/usr/libexec/java_home -v17.0.5
Run Code Online (Sandbox Code Playgroud)
  1. Mac>用户>'您的用户名/主页'>.zshrc

    导出 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home


Raj*_*esh 7

在Mac OSX 10.5或更高版本中,Apple建议设置$JAVA_HOME variable to /usr/libexec/java_home,仅导出$JAVA_HOME in file ~/. bash_profile或即可~/.profile

打开终端并运行以下命令。

$ vim .bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)
Run Code Online (Sandbox Code Playgroud)

保存并退出vim编辑器,然后在.bash_profile上运行source命令

$ source .bash_profile

$ echo $JAVA_HOME

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


小智 7

如果您使用的是 Zsh,请尝试在 ~/.zshrc 文件中添加此行并重新启动终端。

export JAVA_HOME=$(/usr/libexec/java_home) 
Run Code Online (Sandbox Code Playgroud)


And*_*rde 5

JAVA 11 通过 Homebrew - 在 macos Ventura 2022 上测试

.zshrc

export JAVA_HOME=/opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)