当前位置: 首页 > 面试题库 >

Java 1.8 ASM ClassReader无法解析类文件-可能是由于尚不支持新的Java类文件版本

金烨华
2023-03-14
问题内容

我的Web应用程序在JDK 1.7上运行良好,但在1.8下崩溃,但出现以下异常(在使用Jetty 8启动应用程序服务器期间)。我正在使用Spring版本:3.2.5.RELEASE。

例外:

org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet

我认为该问题是由于spring和依赖它的“ asm.jar”库而发生的。

我该如何解决?


问题答案:

正如@prunge和@Pablo Lozano所说,如果要将代码编译为Java 8(-target 1.8),则需要Spring 4,但是如果在Spring 3.2.X上运行,则仍可以在编译为Java 7的Java 8上运行应用程序。

查看 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/new-in-4.0.html

注意,从Spring Framework 4.0开始,仅完全支持Java 8字节码级别(-target 1.8,-source 1.8要求)。特别是,即使恰好将基于Spring 3.2的应用程序部署到Java 8运行时中,也需要使用最多Java 7作为目标进行编译。请针对基于Java 8的应用程序升级到Spring 4。



 类似资料:
  • 配置:Java:16 Gradle:7.2 Jacoco:0.8.4 当我将我的项目从openJDK8升级到openJDk16时,我看到以下问题: “原因:java.lang.IllegalArgumentException:不支持的类文件主版本60” 还有以下问题: java.lang.instrument.IllegalClassFormatException:检测sun/security/e

  • 我有以下字符串,它是sparkContext中的路径参数。textFile方法 s3://桶/前缀1/{file1.txt,file2.special.txt},s3://桶/前缀2/{file3.txt,file4.special.txt},s3://桶/前缀3/{file5.special.txt,file6.txt} 我想做一些解析和操作(例如,只获取包含“.special”的文件)以他们的

  • 当我构建我的应用程序时,我得到了以下错误。任何帮助都将不胜感激。 根:生成。格拉德尔 settings.gradle 应用程序:生成。格拉德尔 失败:生成失败,出现异常*其中:设置文件“/Users/Documents/android/MyApplication5/Settings。gradle“*出了什么问题:无法编译设置文件”//Users/anand/Documents/android/My

  • 我正在尝试运行一个颤振应用程序,在尝试时出现了这个错误,我所做的是我想在没有android studio的情况下运行颤振应用程序,所以我下载了android SDK和JDK 17,在我运行颤振医生后,它告诉我一切都很好,我尝试运行,它给了我这个错误: 所以我尝试了一个旧版本的JDK,它给了我另一个错误,所以我看到了使用JDK 17运行的第三个解决方案,那就是降级gradle中的gradle。属性,

  • 我试图用Java-13和Maven创建Java模块项目。我的是: 版本: 如果我用跳过测试阶段,它就可以正常工作: 复制项目示例:https://github.com/g4s8/so58710751

  • 我正在将我的项目从jdk1.8切换到openjdk 17。代码工作正常,ANT可以生成可执行jar。使用Eclipse IDE。 尝试使用yGuard 3.0.0(通过ant)进行混淆时出现问题。任务是: 输出为: [收缩]错误:不支持的类文件主要版本61[收缩]不支持的类文件主要版本61 我知道61意味着java 17,所以我尝试将工作区符合性更改为“编译器符合性级别”-