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

在Eclipse中使用Jetty时触发IllegalArgumentException/RuntimeException求助

问题分析与解决方案

看起来你遇到的是Jetty扫描类文件时的ASM版本不兼容问题,我之前处理过好几个类似的场景,核心原因是字节码版本和ASM库不匹配,具体来说:

Jetty的注解解析器依赖ASM库来读取Java类文件的字节码,如果你用较高版本的JDK(比如JDK11+)编译了Test类,但你的Jetty版本自带的ASM库只支持较低版本的字节码(比如JDK8及以下),就会抛出这个IllegalArgumentException。

下面是具体的排查和解决步骤:

  • 核对JDK编译级别与Jetty版本兼容性
    先确认你的Jetty版本支持的JDK范围:Jetty 9.x最高支持JDK8,Jetty 10+开始支持JDK11及以上。在Eclipse中右键项目→Properties→Java Compiler,把编译级别调整到Jetty支持的版本,比如用Jetty9的话就选1.8。

  • 更新ASM依赖版本(如果用构建工具)
    如果你是用Maven或Gradle管理项目,直接在依赖中指定匹配JDK版本的ASM库:

    • JDK8:ASM 6.x版本
    • JDK11:ASM 7.x及以上版本
      比如Maven依赖可以这么加:
    <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>7.3.1</version>
    </dependency>
    
  • 清理并重新构建项目
    旧的编译产物可能残留不兼容的字节码,先执行Eclipse的Project→Clean清理项目,然后重新编译,再启动Jetty试试。

  • 确认类文件的存放位置
    确保你的Test.class是放在src/main/java目录下编译生成的,不要把类文件放到资源目录或者Jetty会扫描的其他非源码目录里,避免不必要的扫描错误。

附上你提供的异常信息,方便后续参考:

java.lang.RuntimeException: Error scanning file C:\Users\****\eclipse-workspace\donationFinder\target\classes\com\testingClass\Test.class 
at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:783) 
at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:876) 
at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:165) 
at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:552) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) 
at java.base/java.lang.Thread.run(Thread.java:835) 
Caused by: java.lang.IllegalArgumentException 
at org.objectweb.asm.ClassReader.&lt;init&gt;(Unknown Source) 
at org.objectweb.asm.ClassReader.&lt;init&gt;(Unknown Source) 
at org.objectweb.asm.ClassReader.&lt;init&gt;(Unknown Source) 
at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:986) 
at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:777) 
... 5 more

内容的提问来源于stack exchange,提问作者sabraship

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:02:43