我已在Spring 3.2.8中配置了Junit 4,并在其中使用了JDK 8。 这是我的测试控制器类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebConfig.class })
public class TManagerTest {
@Autowired
private TestManager testManager ;
@Test
public void test() {
this.testManager.getAll();
}
}`
当我尝试运行应用程序时,出现此错误:
ASM ClassReader无法解析类文件-可能是由于新的 尚不支持的Java类文件版本:file ././TManagerTest .java
搜索问题时,我发现Spring 3.x最多支持JDK7。因此它必须与JDK 7一起编译,但我们可以使用JRE 8。
是真的吗?如果是,我的问题是当我创建带有注释的@Service
,@Controller
的类并运行应用程序时,它可以正常工作。为什么仅junit会发生错误?如果是这种情况,那么除了junit之外,它也不能使用。
如果我想使用带有jdk 8的spring 3.2.8,
答案 0 :(得分:1)
如果要将代码编译为Java 8(目标1.8),则需要Spring 4,但如果在Spring 3.2.x上运行,则仍可以在编译为Java 7的Java 8上运行应用程序。
根据spring reference documentation:
请注意,Java 8字节码级别(-target 1.8,由 从Spring Framework 4.0开始,仅完全支持-source 1.8)。特别是,基于Spring 3.2的应用程序需要使用 即使恰好部署了它们,最多也要以Java 7为目标 到Java 8运行时。请升级到基于Java 8的Spring 4 应用程序。