Подтвердить что ты не робот

Неподдерживаемая версия major.minor 51.0, но все установлено на JDK 1.6

У меня есть приложение Maven Eclipse, которое я пытаюсь запустить через командную строку, используя следующую команду:

java -cp target/classes;"target/dependency/*" com.example.Main

К сожалению, это вызывает ошибку:

UnsupportedClassVersionError : unsupported major.minor version 51.0

Я немного поработал и выяснил, что он имеет какое-то отношение к приложению, скомпилированному в JDK более новой версии, чем JRE, над которым он работает. По-видимому, 51 означает, что он был построен для 1.7, но у меня нет JDK 7 на моем компьютере...

Итак, я убедился, что все настроено на версию 1.6:

Файл system.properties в корневом каталоге содержит

java.runtime.version=1.6

Добавлено свойство maven

<java.version>1.6</java.version>

Указанный плагин компилятора maven в моем pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
</plugin>

Я проверил версию моего java с помощью команды java -version, которая вернула

Java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-bit Server VM (build 20.13-b02, mixed mode)

И обновление моего проекта после установки maven-compiler-plugin привело к тому, что Eclipse автоматически установил уровень компилятора на 1,6, уровень гранта проекта до 1,6 и добавив в мою проект системную библиотеку JavaSE-1.6 jre.

Итак, я совершенно не знаю, откуда этот JDK 1.7. Я никогда не устанавливал JDK 1.7 на этом компьютере, чтобы начать с...

Кроме того, изначально, maven-compiler-plugin не присутствовал, поэтому он был построен с 1.5, я думаю. Но я сделал mvn clean install, затем mvn package, а затем снова попробовал команду после того, как все настройки были скорректированы, и она по-прежнему вызывает ту же ошибку.

4b9b3361

Ответ 1

Вероятно, у вас есть зависимость, для которой требуется Java 1.7

Ответ 2

Вероятно, вы используете зависимость, для которой требуется Java SE 7.

Если это так, либо перейдите на Java SE 7 (рекомендуется, если вы используете JRE из Oracle без контракта на поддержку, так как Java SE 6 достигли конца жизни в феврале) или замените эту зависимость.