Неустранимая компиляция ошибок: недопустимая целевая версия: 1.8 → [Справка 1]

Аналогичная проблема, подобная той, что была отправлена ​​на недействительной целевой версии: 1.7, но после просмотра блога моя проблема все еще не решена.

Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 3.1: компиляция (по умолчанию-компиляция) в проекте hm_app: фатальная компиляция ошибок: недопустимая целевая версия: 1.8 → [Help 1]

Я столкнулся с в качестве учебника, когда столкнулся с этой проблемой.

abt java & mvn

C:\mvn>echo %JAVA_HOME% 
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields

выходы

C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\apache-maven-3.0.4

Ответ 1

Вы установили %JAVA_HOME в jdk 1.7, но вы пытаетесь скомпилировать его с помощью 1.8. Установите jdk 1.8 и убедитесь, что ваш %JAVA_HOME указывает на это или отбрасывает целевую версию до 1.7.

недействительный целевой выпуск: 1,8

Целевой релиз относится к версии jdk.

Ответ 2

Поместите значение в плагин:

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

Ошибка:

<source>${java.version}</source>
<target>${java.version}</target>

Ответ 3

В моем случае maven "Run configuration" использовал неправильную JRE (1.7). Обязательно проверьте Запустить → Запустить конфигурации → (Tab) JRE, чтобы быть некоторым jdk1.8.x.

Ответ 4

Проблема была решена, поскольку у меня был JDK, указывающий на 1.7 и JRE, указывающий на 1.8. В командной строке введите команду

java -version

и

javac -version.

Оба должны быть одинаковыми.  

Ответ 5

Для затмения вот как я решил свою проблему:

  1. Настройки → Компилятор → Уровень компилятора компилятора (изменение на 1.8) enter image description here

  2. Perferences → Установленные JRE → выберите JAVA SE 8 1.8 enter image description here

  3. Перестройте через maven, используя Run as maven build.

Это больше не должно показывать вам неверную целевую ошибку.
Примечание: мне не нужно было устанавливать или изменять какие-либо другие переменные в моем терминале. Надеюсь это поможет.

Ответ 6

Положив это в ваш .profile, вы будете динамически заботиться о своем $JAVA_HOME

export JAVA_HOME=$(/usr/libexec/java_home)

Закройте оболочку, откройте новую и проверьте с помощью

echo $JAVA_HOME

Он должен отображать что-то вроде

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

Если не, удалите любые другие назначения JAVA_HOME в сценариях запуска. Помните, что эти сценарии запуска начинаются с ., поэтому они скрыты и не будут включены при использовании подстановочного символа *, например. если вы хотите grep все файлы вашего домашнего каталога, вам необходимо:

grep -s JAVA_HOME ~/.* --exclude=.bash_history

Ответ 7

Проблема, с которой я столкнулся, заключалась в том, что я смог создать сборку maven из командной строки, но не из Eclipse. Что мне работало в eclipse, так это то, что я изменил конфигурацию запуска, чтобы указать на папку JRE внутри JDK, а не оставляя его в папке JDK только в соответствии со стандартом. Это решение может работать и на вас, но попробуйте это, если и только если все пути Java верны, java и javac показывают ту же версию, что и в target pom.xml.

Ответ 8

Этот вопрос не задавался явно о Docker, но я получил ту же ошибку, когда у меня был файл pom.xml, предназначенный для 1.9...

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.9</maven.compiler.source>
  <maven.compiler.target>1.9</maven.compiler.target>
</properties>

... но затем попытался запустить тесты для контейнера Docker, указав "maven" сам по себе.

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test

Для меня исправление было предназначено для точной версии, в которой я нуждался.

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test

(Вы можете узнать больше здесь.)

Ответ 9

Я столкнулся с этой проблемой при развертывании на Dokku, по какой-то причине он выбирал JDK 1.7

Создание файла system.properties и установка java.runtime.version=1.8 решили проблему. Dokku теперь использует Java версии 8. Выбор JDK на Heroku

Мне никогда не приходилось делать это раньше...

Ответ 10

На Windows-машине вы можете временно установить версию Java.
Например, чтобы изменить версию на Java 8, выполните эту команду в cmd:

set JAVA_HOME=C:\\...\jdk1.8.0_65

Ответ 11

Выполните принудительное обновление Maven, которое принесет совместимые версии 1.8 Jar, а затем при сборке обновите версии JRE в среде Execute до 1.8 из Run Configurations и нажмите RUN

Ответ 12

Если вы используете Eclipse IDE, перейдите в меню "Окно" и выберите настройки, и там вы найдете установленные JRE и выберите JRE, необходимую для построения проекта.

Ответ 13

Что сработало в моем случае это:

Я открыл pom.xml и заменил один из плагинов, как pom.xml ниже.

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

До того, как я отредактировал теги source и target, оба имели 1.8, я изменил их на 1.7 и это сработало.