我试图运行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上编译?
答案 0 :(得分:2)
问题是jTDS库本身是用Java 7编译的。你应该使用Java 7来运行它,而不是Java 6.
如果您无法更改Java版本,则可以尝试使用在Java 6中编译的库的旧版本。或者,如果您可以访问源代码,则可以尝试使用-target
编译器构建它标志设置为1.6。