maven上不受支持的major.minor版本51.0

时间:2014-07-23 14:00:00

标签: java maven intellij-idea

我正在使用maven构建java模块,我的所有代码都在main/java上成功构建,但是当我尝试开始创建测试并从test/java实例化一个类时构建文件夹失败,并显示以下错误:

java.lang.UnsupportedClassVersionError: javax/servlet/jsp/tagext/TryCatchFinally : Unsupported major.minor version 51.0

我在mac中使用了intelliJ,当我检查我的(仅)java版本时,我得到了这个:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

javac相同。

我尝试了以下内容:

  • 使缓存无效并重新启动IntelliJ
  • 检查IntelliJ上的java编译器设置(一切都设置为1.6)
  • 删除.m2目录中的javax文件夹,以便maven再次下载
  • 仔细检查了我的pom上的版本

我无法使用java 7构建,因为它会破坏大量代码,因为我正在处理一个与java 6构建项目交互的模块。

这对我没有意义,因为只有当代码在jUnit测试用例中时才会发生,否则它会起作用!

非常感谢您的帮助,谢谢。

编辑:这不是一个重复的问题...因为现有的问题都没有谈到TryCatchFinally版本的版本。有些人只是想赚取徽章或其他东西......

1 个答案:

答案 0 :(得分:3)

此错误表示依赖项中的javax.servlet.jsp.tagext.TryCatchFinally类已使用Java 7进行编译,而您只有6级。

我怀疑原因是你的servlet,JSP或taglib依赖是在为Java 7构建的版本上,你必须降级它。

你在那里有什么依赖?

编辑:看起来JSP 2.3是Java EE 7的一部分:http://en.wikipedia.org/wiki/Java_EE_version_history。我认为你在这里运气不好,唯一的选择是使用Java EE 6(将JSP依赖关系降级为2.1或2.2)或升级到Java 7。