M1 Mac下IntelliJ运行JavaFX程序随机崩溃报SIGBUS(0xa)错误
错误原因分析
你遇到的是Oracle JDK 17.0.1版本在M系列芯片macOS设备上的已知兼容性问题,和JavaFX的硬件渲染原生模块交互时会随机触发SIGBUS总线错误,崩溃发生在JVM之外的原生代码层,和你写的上层Java业务代码无关。
解决方案
- 更换JDK版本:优先升级到Oracle JDK 17.0.8及以上的LTS版本,也可以替换为适配ARM64架构的OpenJDK发行版,例如Zulu JDK、Temurin JDK的ARM64位安装包,不要使用通过Rosetta2转译运行的x86版本JDK。
- 校验JavaFX架构匹配:确认你导入的JavaFX SDK是ARM64(aarch64)版本,架构不匹配会直接触发原生层崩溃。
- 修正IntelliJ运行配置:打开项目对应的运行配置项,确认JRE选项选中的是你安装的ARM版本JDK,而非IntelliJ默认携带的旧版本或x86转译版JDK。
- 临时验证方案:如果更换版本后仍出现崩溃,可以在运行的VM参数中添加
-Dprism.order=sw,强制JavaFX使用软件渲染模式,跳过硬件加速的原生调用,排查是否为GPU渲染适配导致的问题。
内容的提问来源于stack exchange,提问作者Yayo
相关产品推荐
相关产品推荐

