macOS搭载JDK17时Java2D Queue Flusher线程崩溃问题求助
崩溃触发原因
- 这是搭载AMD Radeon X5000系列显卡的Mac设备安装JDK 17正式版后的高发共性问题,由JDK 17默认启用的Metal 2D渲染管线与macOS 11.6版本的AMD显卡驱动的兼容性缺陷导致
- 崩溃发生在Java2D的Metal渲染队列刷新字体纹理缓存的环节,调用AMD显卡驱动的Metal接口处理纹理加载时触发异常,属于JDK 17正式版(build 35)的原生AWT库已知问题
规避及修复方案
- 临时规避方案:启动Java应用时添加JVM参数关闭Metal渲染管线,回退到成熟的OpenGL渲染管线,参数为
-Dsun.java2d.metal=false - 官方修复方案:升级JDK到17.0.3及以上更新版本,该兼容性问题已在JDK 17的后续补丁版本中完成修复
- 系统适配方案:如果暂时无法升级JDK,也可以将macOS系统升级到12.3及以上版本,新版本系统的AMD显卡驱动已兼容旧版JDK 17的Metal渲染调用逻辑
内容的提问来源于stack exchange,提问作者Gubatron
相关产品推荐
相关产品推荐

