本文介绍了Java 1.8 ASM ClassReader 无法解析类文件 - 可能是由于尚不支持新的 Java 类文件版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

My web application runs fine on JDK 1.7 but crashes on 1.8 with the following exception (during application server startup with Jetty 8). I am using Spring version: 3.2.5.RELEASE.

org.springframework.core.NestedIOException:ASM ClassReader 无法解析类文件 - 可能是由于尚不支持新的 Java 类文件版本

我认为问题是由于 spring 和它所依赖的asm.jar"库引起的.

I assume that problem occurs because of spring and "asm.jar" library on which it depends.

我该如何解决这个问题?

How do I resolve this?

推荐答案

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

As @prunge and @Pablo Lozano stated, you need Spring 4 if you want compile code to Java 8 (--target 1.8), but you can still run apps on Java 8 compiled to Java 7 if you run on Spring 3.2.X.

退房http://docs.spring.io/spring/docs/current/spring-framework-reference/html/new-in-4.0.html

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

这篇关于Java 1.8 ASM ClassReader 无法解析类文件 - 可能是由于尚不支持新的 Java 类文件版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-23 11:36