使用java 6编译时不支持major.minor版本51.0

时间:2014-12-08 19:16:21

标签: java maven jboss

我试图运行java应用程序,但是当我在JBOSS上启动它时,我收到错误:

java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbc/Driver : Unsupported major.minor version 51.0

我四处搜索,发现这是因为用java 7编译代码并用java 6运行它,所以我开始寻找我的java配置。

当我运行javac -version并返回时:

U:\>javac -version
javac 1.6.0_27

当我运行java -version时,它返回我:

U:\>java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode)

当我运行mvn -v:

U:\>mvn -v
Apache Maven 3.0.4 (r1232337; 2012-01-17 06:44:56-0200)
Maven home: C:\dev\apache-maven-3.0.4\bin\..
Java version: 1.6.0_27, vendor: Sun Microsystems Inc.
Java home: C:\dev\Java\jdk1.6.0_27\jre

我不确定为什么会发生这种情况,因为一切都在java 6上运行,而版本51.0来自java 7,根据这篇文章: How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

任何人都知道如何知道我的代码如何在java 7上编译,而不是在Java 6上编译?

1 个答案:

答案 0 :(得分:2)

问题是jTDS库本身是用Java 7编译的。你应该使用Java 7来运行它,而不是Java 6.

如果您无法更改Java版本,则可以尝试使用在Java 6中编译的库的旧版本。或者,如果您可以访问源代码,则可以尝试使用-target编译器构建它标志设置为1.6。