微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apple Silicon(M1) 11.4 出现 java 错误 (jdk16) 即使我重新安装 MacOS 也会出错:不过效果不错:

如何解决Apple Silicon(M1) 11.4 出现 java 错误 (jdk16) 即使我重新安装 MacOS 也会出错:不过效果不错:

Java 运行时环境检测到一个致命错误

内部错误 (sharedRuntime.cpp:531),pid=2424,tid=7427

错误:ShouldNotReachHere()

JRE 版本:OpenJDK 运行时环境 (16.0+14) (build 16+14)

Java VM:OpenJDK 64 位服务器 VM(16+14,混合模式,分层, 压缩 oops,g1 gc,bsd-aarch64)

不会写入核心转储。核心转储已被禁用。启用 核心转储,在再次启动 Java 之前尝试“ulimit -c unlimited”

如果您想提交错误报告,请访问: https://bugreport.java.com/bugreport/crash.jsp

--------------- T H R E A D --------------- 当前线程 (0x000000015400be00): JavaThread "main" [_thread_in_Java,id=7427,堆栈(0x000000016d7b0000,0x000000016d9b3000)] 堆栈: [0x000000016d7b0000,0x000000016d9b3000],sp=0x000000016d9b1750,免费 space=2053k Native 帧:(J=编译的Java代码,A=aot编译的Java 代码,j=解释,Vv=VM 代码,C=本机代码)V [libjvm.dylib+0x9b4130] VMError::report_and_die(int,char const*,char const*,char*,Thread*,unsigned char*,void*,int,unsigned long)+0x46c V [libjvm.dylib+0x9b4884] VMError::report_and_die(Thread*,char*)+0x40 V [libjvm.dylib+0x2ad690] report_vm_error(char const*,...)+0x5c V [libjvm.dylib+0x2ad864] report_should_not_reach_here(char const*,int)+0x2c V [libjvm.dylib+0x818d4c] SharedRuntime::raw_exception_handler_for_return_address(JavaThread*,无符号字符*)+0x178 V [libjvm.dylib+0x818df0] SharedRuntime::exception_handler_for_return_address(JavaThread*,unsigned char*)+0x28 v ~Stubroutines::forward 异常 j java.lang.class.forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;+43 java.base@16 ...

即使我重新安装 MacOS 也会出错:

  1. 通过 brew 安装的 JDK16
  2. 通过 Zulu 安装 JDK16
  3. 通过 Zulu 安装 JDK17

不过效果不错:

  1. 通过 Zulu 安装 JDK15

有人说JDK16(Zulu)一切正常,我不知道为什么。

解决方法

使用 java11 / openjdk@11 brew 公式让我现在就开始了。

进行了更多的挖掘,并在 openjdk 问题跟踪器中看到了这一点: https://bugs.openjdk.java.net/browse/JDK-8267235

目前在 https://github.com/Homebrew/homebrew-core/issues/77954 有一个 github 问题,报告了 brew 公式本身安装的问题。看起来可能已经有一些拉取请求,所以期待它很快得到解决。

,

更新到祖鲁语:16.30.19 - https://cdn.azul.com/zulu/bin/zulu16.30.19-ca-jdk16.0.1-macosx_aarch64.dmg 修复了我的问题

,

如果您是通过 brew 安装的,那么运行 brew upgrade 可以解决我的问题。

,

brew 中的 mvn 公式似乎更喜欢始终使用 openjdk 公式,即使安装了 openjdk@11。我最终设置了 JAVA_HOMEmvn 将使用它来解决这个问题,同时在 /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home 安装 Zulu 11。

# Ensure JAVA_HOME is set for mvn since JAVA_HOME will take precedence over homebrew dependency
export JAVA_HOME=$(/usr/libexec/java_home)
,

我同意 Ben Mayes 的观点,使用 Java 11。我想为像我这样的初学者提供有关如何执行此操作的详细说明。

第 1 步:转到此 page 以下载 Java 11。在页面底部附近,您将选择要下载的 Java 版本。对于操作系统,请选择 macOS。对于体系结构,选择 ARM 64 位。对于 Java 包,选择 JDK。然后,选择下面的 .dmg 选项进行下载。双击 .dmg 文件进行安装。

第 2 步:按照此 tutorial。我唯一真正需要改变的是使用 .zshrc 配置文件而不是 .bash 配置文件。这将是您将使用的版本的名称:zulu-11.jdk。

这将是您放入 .zshrc 文件中的文本:

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

第 3 步:如果您使用的是 intelliJ 或其他 IDE,您可能需要更改项目使用的版本。请按照此 tutorial 了解如何操作。

,

在我的 Mac m1 机器上遇到了这个问题.. 运行这个命令 brew upgrade 就解决了我的问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。