我正在使用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相同。
我尝试了以下内容:
我无法使用java 7构建,因为它会破坏大量代码,因为我正在处理一个与java 6构建项目交互的模块。
这对我没有意义,因为只有当代码在jUnit测试用例中时才会发生,否则它会起作用!
非常感谢您的帮助,谢谢。
编辑:这不是一个重复的问题...因为现有的问题都没有谈到TryCatchFinally版本的版本。有些人只是想赚取徽章或其他东西......
答案 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。