mac m1 解决JVM启动报错:A fatal error has been detected by the Java Runtime Environment

本文介绍了解决IDEA启动时出现的SIGFPE错误的方法。该错误与Java HotSpot VM有关,通过更换JDK版本至Azul Zulu OpenJDK得以解决。提供详细的错误日志及解决方案。
问题详情

IDEA中启动报错日志详情:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGFPE (0x8) at pc=0x000000010eed3868, pid=2903, tid=0x0000000000006513
#
# JRE version: Java(TM) SE Runtime Environment (8.0_211-b12) (build 1.8.0_211-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.211-b12 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# j  com.sun.tools.javac.comp.ConstFold.fold2(ILcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;+877
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/zs/Library/Caches/JetBrains/IntelliJIdea2020.3/compile-server/hs_err_pid2903.log
Compiled method (c1)    6458 1407       1       java.lang.Integer::intValue (5 bytes)
 total in heap  [0x000000010f35bd50,0x000000010f35bfe0] = 656
 relocation     [0x000000010f35be78,0x000000010f35bea0] = 40
 main code      [0x000000010f35bea0,0x000000010f35bf20] = 128
 stub code      [0x000000010f35bf20,0x000000010f35bfb0] = 144
 scopes data    [0x000000010f35bfb0,0x000000010f35bfb8] = 8
 scopes pcs     [0x000000010f35bfb8,0x000000010f35bfd8] = 32
 dependencies   [0x000000010f35bfd8,0x000000010f35bfe0] = 8
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

解决方案:

替换m1 中jdk版本

jdk arm版下载地址:

https://docs.azul.com/core/zulu-openjdk/install/macos

我下载的版本

安装:

默认安装路径:/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

参考安装:https://docs.azul.com/core/zulu-openjdk/install/macos

替换IDEA中JDK

先添加jdk,再在project 项目中引入
至此 ,再次启动项目错误解决!
项目成功启动

HBuilder 是一款常用于前端开发和 Hybrid 移动应用打包的集成开发环境,它依赖于 Java 运行时环境来执行构建任务。当在 HBuilder 中进行项目打包时,如果出现 `A fatal error has been detected by the Java Runtime Environment` 错误提示,通常意味着 JVM 在运行过程中遇到了致命错误,导致程序崩溃。 ### 常见原因与解决方案 #### 1. **JVM 内存配置不当** - 如果分配给 JVM 的内存过高或过低,可能导致系统资源不足或冲突,从而引发崩溃。 - 解决方法是调整 HBuilder 使用的 JVM 参数,尤其是 `-Xms` 和 `-Xmx` 的值。建议将初始堆大小(`-Xms`)和最大堆大小(`-Xmx`)设置为相同值以避免动态调整带来的问题[^5]。 ```bash -Xms2048m -Xmx2048m ``` #### 2. **Java 版本兼容性问题** - HBuilder 对 Java 环境版本有一定要求,使用不兼容的 JDK/JRE 版本可能引发运行时异常。 - 尝试更换为更稳定的 Java 版本,例如 OpenJDK 8 或官方推荐的版本。确保所使用的 Java 版本与 HBuilder 兼容[^1]。 #### 3. **IDE 缓存或插件冲突** - HBuilder 可能因为缓存文件损坏或者某些插件与当前版本不兼容而导致 JVM 崩溃。 - 清除缓存:关闭 HBuilder,删除其缓存目录(通常位于用户目录下的 `.HBuilder` 文件夹),然后重新启动。 - 禁用不必要的插件,排查是否有第三方插件引发异常。 #### 4. **操作系统路径或编码问题** - 如果项目路径包含中文字符或特殊符号,某些版本的 Java 可能无法正确处理这些路径,从而导致 JVM 崩溃[^3]。 - 确保所有项目路径、工作空间路径均为英文,并且不含空格或特殊字符。 #### 5. **硬件或驱动兼容性问题** - 某些情况下,显卡驱动或其他底层系统组件可能会与 JVM 的图形渲染机制发生冲突,尤其是在使用 `-Dsun.java2d.metal=true` 这类参数时。 - 尝试移除或修改此类 JVM 参数,或更新显卡驱动至最新版本。 #### 6. **日志分析定位具体问题** - 检查 HBuilder 自动生成的日志文件(如 `hs_err_pid<PID>.log`),该文件通常会记录崩溃时的详细信息,包括出错的 native frame 地址等[^2]。 - 根据日志中提供的线索判断是 JVM 内部问题还是外部 native 库引发的崩溃。 #### 7. **更换物理内存条** - 在极少数情况下,系统内存条存在问题也可能导致 JVM 崩溃,尤其是在频繁出现闪退或重启的情况下[^5]。 - 更换内存条或使用内存检测工具(如 MemTest86)检查内存稳定性。 --- ### 示例:修改 HBuilder 启动配置 找到 HBuilder 安装目录中的 `HBuilderX.exe.vmoptions` 文件,编辑内容如下: ```ini -Xms2048m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -Dsun.io.useCanonCaches=false -Djdk.http.auth.tunneling.disabledSchemes="" -Djdk.attach.allowAttachSelf=true ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值