【问题标题】:How to run java from macOS Catalina build 10.15.4?如何从 macOS Catalina build 10.15.4 运行 java?
【发布时间】: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 月开始)没有更新吗?

【问题讨论】:

标签: java macos intellij-idea homebrew


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多