如何在 Mac OS X 10.9 上设置 JAVA_HOME 环境变量?

     2023-02-26     256

关键词:

【中文标题】如何在 Mac OS X 10.9 上设置 JAVA_HOME 环境变量?【英文标题】:How to set JAVA_HOME environment variable on Mac OS X 10.9? 【发布时间】:2014-05-15 13:59:57 【问题描述】:

我刚刚购买了一台全新的 MacBook Pro。

这是我有史以来的第一台 MAC,我仍在努力掌握导航的窍门。

无论如何,我也是 Java 新手,在我的 Windows PC 永久死亡之前,我一直在练习。

现在我在这个 MAC 上,我安装了我的 JDK,现在我需要设置 JAVA_HOME 环境变量。

我不知道该怎么办。

我尝试按照其中的一些指南进行操作,但并没有走得太远。

    Mkyong.com : How to set JAVA_HOME variable in Mac OSX

    YouTube : How to set environment variables on mac, linux, solaris, rhel

    YouTube : How to Set Environment Variables in Mac

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


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


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

有人能告诉我如何在 Mac OSX 环境中逐步设置 Java 吗?

【问题讨论】:

重复:superuser.com/questions/240100/… What should I set JAVA_HOME to on OSX的可能重复 简述:***.com/a/59151321/5788247 在 M1 Mac 上通过brew 安装后,我的位置为/opt/homebrew/Cellar/openjdk/17.0.1_1/libexec/openjdk.jdk/Contents/Home。显然更改了您的版本,但找到路径的典型方法证明很困难,所以我希望这对其他人有所帮助。 【参考方案1】:

如果您使用的是 bash,您所要做的就是:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

如果您使用的是 zsh(这可能意味着您正在运行 macOS Catalina 或更新版本),那么它应该是:

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.zshrc

在任何一种情况下,重新启动你的 shell。

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

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

【讨论】:

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

我是这样做的

export JAVA_HOME=`/usr/libexec/java_home`

(backtics) 在我的 .bashrc 中。请参阅我对 Adrian 回答的评论。

【讨论】:

【参考方案3】:

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

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

/usr/libexec/java_home

手动导航到那里以确保您没有由于版本不正确等原因而出现任何错误。对我来说,这是:

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

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

vim ~/.zshrc

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

vim ~/.bash_profile

在里面,在文件的任意位置添加以下新行:

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

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

【讨论】:

谢谢。这在 MacOS BigSur 上对我有用 我有同样的经历,这为我解决了问题。谢谢! 这甚至适用于 macOS Monterey。谢谢这个!欣赏!【参考方案4】:

在 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)

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

$ source .bash_profile

$ echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

【讨论】:

【参考方案5】:

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

下载安装JDK

    首先,安装JDK 打开终端查看java版本

$ java -version

设置 JAVA_HOME 环境变量

    打开.zprofile文件

$ open -t .zprofile

或者创建。 zprofile 文件

$open -t .zprofile

    写入.zprofile

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

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

$ source .zprofile

在终端设置测试

$ echo $JAVA_HOME  
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home

【讨论】:

我还有一个问题“/usr/libexec/java_home”实际上是什么。答:medium.com/zendesk-engineering/… /usr/libexec/java_home 是在 macOS 上设置 JAVA_HOME 的最简单的可维护方式。您可以使用 java_home 来: 查找所有已安装的 JDK。 这适用于我在 2020 年运行 Catalina 的 2019 年 Mac 上。接受和最赞成的答案没有。首先是 bash 配置文件现在是 .zprofile,而且接受的答案中的 export 命令内容对我不起作用,但确实如此。 只需说明从何处获取 JDK——或者,您可以从 adoptopenjdk.net 安装 JDK。不同之处在于 Oracle 的许可证不允许使用其 JDK 进行商业构建,除非您为许可证付费。而采用openjdk 是开源的。【参考方案6】:

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

$ echo $SHELL
/bin/bash

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

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

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

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

【讨论】:

【参考方案7】:

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

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

【讨论】:

【参考方案8】:

我通过添加到 ~/.profile 使其工作。不知何故,在更新到 El Capitan 测试版后,即使 JAVA_HOME 已在 .bash_profile 中定义,它也无法正常工作。

如果有 El Capitan beta 用户,请尝试添加到 .profile

【讨论】:

.profile 和 .bash_profile 有什么区别? 这个想法是 .profile 为所有 shell(sh、zsh 等)运行; .bash_profile,仅适用于 bash shell。【参考方案9】:

由于我使用的是通过 sdkman 管理的 openjdk,所以我添加了

sudo ln -sfn /path/to/my/installed/jdk/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

将此添加到您的系统可以让java_home 识别您安装的 Java 版本,即使它没有通过标准包安装

【讨论】:

请问在这种情况下,您将 JAVA_HOME 设置为什么? export JAVA_HOME="/usr/libexec/java_home" ? 有了这行 java 将被发现类似于如果它是标准安装,我们将标准安装位置链接到实际安装位​​置,因此它被视为正式安装的包,你不需要设置 JAVA_HOME【参考方案10】:

我检查了我的 /Library/Java/JavaVirtualMachines/ 目录,发现版本为jdk1.8.0_321.jdk/Contents/Home 并将其直接添加到我的 .bash_profile:

导出 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home

但在获取 .bash_profile 后仍然抱怨:操作无法完成。找不到支持 apt 的 Java 运行时。

【讨论】:

对不起,我使用的是 sudo apt install for linux,不得不将其更改为 brew。那是我的问题

在 OS X 10.9 (Mavericks) 上安装 Java

】在OSX10.9(Mavericks)上安装Java【英文标题】:InstallingJavaonOSX10.9(Mavericks)【发布时间】:2013-11-0105:56:41【问题描述】:我已经在Mac OS X v10.8(MountainLion)上安装了JDK。当我将它升级到Mac OS X v10.9(小牛队)并在终端中运行java-vers... 查看详情

无法在 Mac OS X 10.9 上安装 Lxml

】无法在MacOSX10.9上安装Lxml【英文标题】:CannotinstallLxmlonMacOSX10.9【发布时间】:2013-11-0202:27:44【问题描述】:我想安装Lxml,这样我就可以安装Scrapy。当我今天更新我的Mac时,它不允许我重新安装lxml,我收到以下错误:Infileinclud... 查看详情

如何在 mac os x (10.9) 上的 python 中安装 libgpuarray 和 clBLAS?

】如何在macosx(10.9)上的python中安装libgpuarray和clBLAS?【英文标题】:HowtoinstalllibgpuarrayandclBLASinpythononmacosx(10.9)?【发布时间】:2014-09-2311:24:24【问题描述】:我正在尝试在OSX10.9上为python安装libgpuarray(http://deeplearning.net/software/libgpuar... 查看详情

在 Mac (OS X 10.9) 上 setCalendarPopup(True) 时缺少 PySide.QtGui.QDateEdit 的顶部边框

】在Mac(OSX10.9)上setCalendarPopup(True)时缺少PySide.QtGui.QDateEdit的顶部边框【英文标题】:MissingtopborderofaPySide.QtGui.QDateEditwhensetCalendarPopup(True)onaMac(OSX10.9)【发布时间】:2014-02-0422:59:08【问题描述】:有谁知道是什么原因导致在Mac(OSX10.9)... 查看详情

在 Mac OS X 10.9 上安装 PyLucene 时在符号索引中找不到 Atom

】在MacOSX10.9上安装PyLucene时在符号索引中找不到Atom【英文标题】:AtomnotfoundinsymbolindexwheninstallingPyLuceneonMacOSX10.9【发布时间】:2014-11-1518:52:07【问题描述】:我正在尝试安装PyLucene,当我执行“pushdjcc”和“pythonsetup.pybuild”时,... 查看详情

如何检测 NaN 在哪里传递给 Mac OS X 10.9 上的 CoreGraphics API

】如何检测NaN在哪里传递给MacOSX10.9上的CoreGraphicsAPI【英文标题】:HowtodetectwhereNaNispassingtoCoreGraphicsAPIonMacOSX10.9【发布时间】:2013-10-0417:29:26【问题描述】:我有非常大的图形Mac应用程序,现在我在10.9GM的控制台中收到很多以下... 查看详情

如何在 OS X 10.9 (Mavericks) 上使用 GDB 而不是 LLDB 调试 ELF 文件?

】如何在OSX10.9(Mavericks)上使用GDB而不是LLDB调试ELF文件?【英文标题】:HowdoIdebuganELFfileusingGDBinsteadofLLDBonOSX10.9(Mavericks)?【发布时间】:2014-04-2618:55:18【问题描述】:我有一个名为app2的ELF可执行文件,它是在Linux下编译的,它不能... 查看详情

pip 在 Mac OS X Mavericks (10.9) 上引发 stdio.h not found 错误

】pip在MacOSXMavericks(10.9)上引发stdio.hnotfound错误【英文标题】:pipraisesstdio.hnotfounderroronMacOSXMavericks(10.9)【发布时间】:2014-06-2717:25:16【问题描述】:此时我已经尝试了无数解决方案,但似乎没有任何效果。我正在尝试安装mysql-pytho... 查看详情

使用 PhoneGap/Cordova 为 Android 构建时,在 Mac OS X 10.9 Mavericks 上执行命令“ant”时出错

】使用PhoneGap/Cordova为Android构建时,在MacOSX10.9Mavericks上执行命令“ant”时出错【英文标题】:Errorexecutingcommand\'ant\'onMacOSX10.9MaverickswhenbuildingforAndroidwithPhoneGap/Cordova【发布时间】:2013-10-3000:13:39【问题描述】:今天我用MacOSXMaverick... 查看详情

在 OS X Mavericks 10.9 上安装 apache 2.4

】在OSXMavericks10.9上安装apache2.4【英文标题】:Installingapache2.4onOSXMavericks10.9【发布时间】:2014-03-0521:39:00【问题描述】:我想在我的OSXMavericks上安装apache2.4,但遇到了./configure和make的问题。【问题讨论】:【参考方案1】:首先你... 查看详情

我如何在 OS X 10.9 上使用 ghost4j

】我如何在OSX10.9上使用ghost4j【英文标题】:Howcaniuseghost4jonOSX10.9【发布时间】:2013-12-2909:26:59【问题描述】:当我想在OSX10.9上使用ghost4j时,我看到了这个错误:无法加载库\'gs\':dlopen(libgs.dylib,9):imagenotfound我已经使用thissite在我... 查看详情

在 Mac OS X 10.9 中使用 g++ 编译 Rinside

】在MacOSX10.9中使用g++编译Rinside【英文标题】:CompilingRinsidewithg++inMacOSX10.9【发布时间】:2014-02-1320:15:46【问题描述】:我希望在MacOSX10.9中编译Rinside。我有Xcode5。我已经下载了最新版本的Rcpp和RInside(2014),当我想使用以下命令安... 查看详情

如何在 Mac OS X 上设置 libusb?

】如何在MacOSX上设置libusb?【英文标题】:HowtosetuplibusbonMacOSX?【发布时间】:2011-04-2016:45:41【问题描述】:我想尝试在Mac上使用libusb制作用户空间设备驱动程序,但我不知道从哪里开始。在SDK安装程序(我从http://www.ellert.se/twain... 查看详情

如何在 Mac OS X 主机上为 MIPS 目标构建 GCC 4.8.x

】如何在MacOSX主机上为MIPS目标构建GCC4.8.x【英文标题】:HowtobuildGCC4.8.xonMacOSXhostforMIPStarget【发布时间】:2014-04-0103:35:14【问题描述】:我正在尝试在运行(10.9)x86_64的MacOSX主机上为MIPS目标平台构建GCC/binutils。据我所知,我已经下... 查看详情

如何使用 rvm 在 OS_X 10.9 上安装 ruby​​ 2.1.0? (没有可用的二进制红宝石:osx/10.9/x86_64/ruby)

】如何使用rvm在OS_X10.9上安装ruby​​2.1.0?(没有可用的二进制红宝石:osx/10.9/x86_64/ruby)【英文标题】:Howinstallruby2.1.0onOS_X10.9usingrvm?(Nobinaryrubiesavailablefor:osx/10.9/x86_64/ruby)【发布时间】:2014-04-1703:16:55【问题描述】:我正在尝... 查看详情

OS X 10.9 Mavericks - 使用虚拟主机设置本地主机

】OSX10.9Mavericks-使用虚拟主机设置本地主机【英文标题】:OSX10.9Mavericks-LocalhostSetupwithVHosts【发布时间】:2014-04-0218:52:29【问题描述】:我刚刚尝试在osx上设置本地apache服务器。在我启用虚拟主机之前,一切都很顺利。当我导航... 查看详情

如何在 Mac OS X 上设置已保存文档的 kMDItemKind?

】如何在MacOSX上设置已保存文档的kMDItemKind?【英文标题】:HowtosetthekMDItemKindofasaveddocumentonMacOSX?【发布时间】:2012-04-0922:25:47【问题描述】:我有一个旧版应用程序(至少从MacSystem7移植到Carbon到Cocoa),用户报告该应用程序保... 查看详情

在 Mac OS X 10.9 中使用 GLFW 创建 OpenGL 3.3 上下文

】在MacOSX10.9中使用GLFW创建OpenGL3.3上下文【英文标题】:CreatingOpenGL3.3ContextwithGLFWinMacOSX10.9【发布时间】:2014-03-0602:48:02【问题描述】:我有以下代码:voiderror_callback(interror,constchar*description)fputs(description,stderr);intmain(void)//Initia 查看详情