You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GlassFish 4.1启动时控制台抛出异常的原因排查(Eclipse Oxygen+JDK8)

这个GlassFish启动异常的原因拆解

别慌,这个问题我太熟了,核心是类文件版本不兼容+老版本ASM库跟不上新格式,具体拆解成几个关键点:

  • 你项目里的log4j JAR是个多版本JAR(Java 9才引入的特性),里面在META-INF/versions/9目录下存了专门给Java 9编译的类,这类文件的版本号是53.0(对应Java 9)。
  • GlassFish 4.1自带的org.glassfish.hk2.external.org.objectweb.asm库版本太老了,它最多只能处理Java 8的类文件(版本号52.0),根本认不出Java 9的类结构。
  • 启动时GlassFish的HK2组件会扫描所有依赖JAR里的类,哪怕是多版本JAR里高版本目录下的文件也不会放过,老ASM一碰到Java 9的类就直接炸了,抛出你看到的IllegalArgumentException。

补充一句:哪怕你用的是JDK 8运行,多版本JAR里的高版本类目录还是会被扫描工具读到,这才触发了这个兼容性坑。

内容的提问来源于stack exchange,提问作者Arthur de Rodrigue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:26:02