如何从 macOS Catalina build 10.15.4 运行 java?
Posted
技术标签:
【中文标题】如何从 macOS Catalina build 10.15.4 运行 java?【英文标题】:How to run java from macOS Catalina build 10.15.4? 【发布时间】:2020-07-11 02:00:36 【问题描述】:我刚刚从 10.15.3 -> 10.15.4 升级了我的 macOS Catalina,我无法再在 IntelliJ 中运行 java。
我通过应用来自brew
的警告,设法让它从终端运行:
➜ ~ brew reinstall java
==> Reinstalling openjdk
==> Downloading https://homebrew.bintray.com/bottles/openjdk-13.0.2+8_2.catalina.bottle.tar.gz
Already downloaded: /Users/jactor/Library/Caches/Homebrew/downloads/0dd8815aa4758e78a47b642bf541e2ada54d5067a8742b33b309989b77d0741b--openjdk-13.0.2+8_2.catalina.bottle.tar.gz
==> Pouring openjdk-13.0.2+8_2.catalina.bottle.tar.gz
==> Caveats
For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
openjdk is keg-only, which means it was not symlinked into /usr/local,
because it shadows the macOS `java` wrapper.
If you need to have openjdk first in your PATH run:
echo 'export PATH="/usr/local/opt/openjdk/bin:$PATH"' >> ~/.zshrc
For compilers to find openjdk you may need to set:
export CPPFLAGS="-I/usr/local/opt/openjdk/include"
==> Summary
???? /usr/local/Cellar/openjdk/13.0.2+8_2: 631 files, 314.6MB
当我启动 IntellJ 时,Mac 的弹出窗口显示:
“openjdk-13.0.1.jdk”无法打开,因为无法验证开发者。 macOS 无法验证此应用是否没有恶意软件。 Homebrew Cask 于 2019 年 12 月 3 日从 openjdk.java.net 下载了此文件。
如何解决这个问题?缓存的文件(从 12 月开始)没有更新吗?
【问题讨论】:
你尝试过github.com/AdoptOpenJDK/homebrew-openjdk/issues/267类似问题的建议吗? 这让事情变得更糟。我没有使用adaptopenjdk,无法从终端启动或重新安装java... 需要移到apple.stackexchange.comsudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
为我工作。
【参考方案1】:
打开System Preferences -> Security and Privacy -> General
您应该会看到有关 Java 被阻止的警告,您可以单击“仍然允许”
下次运行 java 时,您将收到一条确认消息,其中包含继续选项:
【讨论】:
嗯。我两次收到该消息,每次打开安全设置时都会出现警告和按钮。【参考方案2】:在 2021 年,最简单的方法是使用 brew 和 jenv
brew install jenv openjdk@11
jenv add /usr/local/opt/openjdk@11
然后在 Intellij IDEA 中添加一个新的 SDK,路径如下:
~/.jenv/versions/11/libexec/openjdk.jdk/Contents/Home/
我还建议添加您的.zshrc
(或.bashrc
)
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
【讨论】:
这个设置对我有用。我会从.zshrc
中删除export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
,因为它没有说在jenv 文档中这样做,而jenv 的全部意义在于为您设置$JAVA_HOME
变量。【参考方案3】:
这在终端中运行良好,但由于 Intellijs 项目结构中使用了“旧”SDK 而出现问题......
将 SDK 设置为 /Library/Java/JavaVirtualMachines/openjdk.jdk
时,它运行良好 :)
`
【讨论】:
如何将 SDK 设置到新目录?【参考方案4】:在我的情况下,我在安全和隐私设置中没有看到任何警告,我只是使用 installer 重新安装了我的 Adopt Open JDK:
https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot
不需要其他步骤。
顺便说一句,我将 JAVA_HOME 导出到 ~/.zprofile 中,如下所示:
export JAVA_HOME=$(/usr/libexec/java_home -v 11) # 1.8, 11
并添加到路径:
export PATH=$JAVA_HOME:$M2_HOME
【讨论】:
以上是关于如何从 macOS Catalina build 10.15.4 运行 java?的主要内容,如果未能解决你的问题,请参考以下文章
macOS Catalina 上的颤振“设备不支持无线同步”错误
从 macOS Catalina 上的源代码编译 LLVM(如何解决“stdio.h”未找到)
macOS Catalina 上的 Node-sass 无法正常工作。我应该如何解决这个问题?
如何忽略/隐藏/关闭macOS Catalina/Mojave的更新通知