2014-12-08 4 views
1

Я пытаюсь запустить приложение Java, но когда я начинаю его на JBOSS, я получаю ошибку:Неподдерживаемого MAJOR.MINOR версия 51,0 при компиляции с Java 6

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 -версия возвращает меня:

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) 

Когда я бегу МВН -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, согласно thi ss: How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

Кто-нибудь знает какой-либо другой способ узнать, как мой код может компилироваться на java 7, вместо этого на java 6?

ответ

2

Проблема заключается в том, что библиотека jTDS сама компилируется в Java 7. Вы должны использовать Java 7, чтобы запустить его, а не Java 6.

Если вы не можете изменить версию Java, вы можете попробовать использовать более старую версию библиотеки, скомпилированной в Java 6. Или, если у вас есть доступ к исходному коду, вы можете попытаться создать его с флагом компилятора -target, установленным в 1.6.

+0

JTDS на моем JBOSS lib - 1.2.2, что для java 6, а не java 7. Единственное место, где я нашел версию JTDS для java 7, было в моем .settings из eclipse, но поскольку я скомпилирую код, используя maven, мне все равно не имеет смысла. –

+0

Вы уверены, что версия, используемая в приложении, предназначена для Java 6? Ошибка ясно показывает, что классы имеют формат Java 7. Возможно, вы можете запустить 'mvn dependency: tree', чтобы проверить версию, используемую в Maven. Также из [этой ссылки] (http://sourceforge.net/p/jtds/news/2012/10/jtds-jdbc-driver-127-and-130-released/) версия 1.3.0 является первой версией, которая использует Java 7. – manouti

+0

Ни один из попов из моего приложения не указывает конкретную версию JTDS. Я искал всю свою рабочую область и обнаружил вхождения JTDS только в файлах eclipse .settings. Нет другого места. –