创建GXT示例项目时遇jreLeakPrevention.gcDaemonFail错误求助
解决Java 11 + GWT 2.9.0 + GXT 4.1.0下的sun.misc.GC找不到错误
这个报错的核心原因是Java 11已移除sun.misc.GC这个内部API,但GWT 2.9.0自带的Jetty 9.2版本中,内存泄漏防护逻辑仍在尝试加载该类,因此抛出ClassNotFoundException。虽然日志显示Jetty最终能启动,但可以通过以下方法解决这个错误:
临时快速解决:添加JVM启动参数
启动GWT DevMode时,加入以下JVM参数:-Djetty.jreLeakPrevention.gcDaemon=false该参数会让Jetty跳过加载
sun.misc.GC的逻辑,直接规避报错。彻底解决:升级GWT到2.10.0及以上版本
GWT 2.10.0已更新内置Jetty版本,修复了Java 9+的兼容性问题,不再依赖sun.misc.GC类。如果项目允许升级GWT版本,这是最稳妥的方案,后续不会再出现此类兼容问题。备选方案:替换Jetty依赖(适合依赖管理场景)
若用Maven或Gradle构建项目,可排除GWT自带的旧Jetty依赖,手动引入兼容Java 11的Jetty 9.4.x系列依赖。不过该方法需调整项目依赖配置,相对繁琐,优先推荐前两种方法。
内容的提问来源于stack exchange,提问作者shae
相关产品推荐
相关产品推荐

