javac: недопустимый целевой выпуск: 1.8

87

Недавно я загрузил JDK 1.8.0.0_06, который идет в комплекте с NetBeans. Затем я узнал, что мой проект JavaFx, который я разрабатывал на Java 1.7, не будет компилироваться в Java 1.8, поэтому я снизил свой JDK до 1.7. Тем не менее я не могу заставить его работать / скомпилировать. Я получаю такую ​​ошибку:

javac: invalid target release: 1.8
Usage: javac <options> <source files>

Я действительно застрял и буду очень признателен за любую помощь.

Program-Me-Rev
источник
1
если вы собираетесь уйти в отставку, то также измените исходный код вашего проекта на 1,7, щелкните правой кнопкой мыши Project -> Properties -> Sources windowи установите 1,7 здесь
Джигар Джоши
Ты спасатель @Jigar Joshi !!!! Еще раз спасибо ***** мельница. Я так благодарен. Вы можете представить свой ответ как ответ, и я могу его принять. Вот это да! Еще раз спасибо. Так долго застрял!
Program-Me-Rev
Если ваш проект не компилируется под Java 1.8, вы, вероятно, делаете что-то очень плохое (например, у вас есть статические поля для компонентов пользовательского интерфейса в коде, который вы разместили в другой очереди, что является серьезной ошибкой дизайна). Вероятно, лучше исправить эту проблему, чем просто вернуться к версии, с которой многие пользователи обновятся в какой-то момент в будущем.
James_D
Вы правы, @James_D. Это мой первый проект на java. Я в значительной степени научился программированию и до сих пор не понимал, как избегать статических членов, интерфейсов и прочего полиморфизма. Мой проект слишком велик, чтобы его можно было редактировать сразу. Я планирую отредактировать его и перейти к внедрению зависимостей через Spring постепенно, по мере того, как заканчиваю другие оставшиеся области. Это болезненный урок, но он хорошо усвоен.
Program-Me-Rev
1
Существуют версии Java 1.8.0, 1.8.0_05 и 1.8.0_11, но не существует такой вещи, как 1.8.0.0_06.
Дэвид Конрад

Ответы:

33

если вы собираетесь уйти в отставку, то также измените источник вашего проекта на 1.7,

right click on your Project -> Properties -> Sources window 

и установить 1.7здесь

примечание: однако я предлагаю вам выяснить, почему он не работает на 1.8

Джигар Джоши
источник
66

Для IntelliJ14 вам, возможно, придется изменить версию байт-кода по отношению к JDK, который вы используете (в глобальных настройках):

введите описание изображения здесь

викасинг
источник
У меня не работает,
изменяю
Но вопрос был о Netbeans?
Jolta
27
  1. Загрузите JDK 8 .
  2. Отредактируйте env var, JAVA_HOMEчтобы он указывал на новый установленный JDK 1.8: R-щелкните Мой компьютер -> Свойства -> Расширенные настройки системы -> Переменные среды найдите JAVA_HOMEв списке и установите для него значение примерно так:

    C:\Program Files\Java\jdk1.8.0_31
    
  3. Найдите старую версию и также отредактируйте ее в PATHпеременной.

  4. Возможно, вам потребуется перезагрузить систему.

Должно быть сделано.

торинкор
источник
23

Если эта ошибка возникает при запуске задачи Gradle (или Maven), вам необходимо изменить эту конфигурацию инструмента сборки, чтобы она указывала на вашу установку Java JDK 1.8 по этому маршруту:

Файл -> Настройки -> Сборка, выполнение, развертывание -> Инструменты сборки -> Gradle

Там вы проверяете, что проект Linked Gradle - это тот, над которым вы работаете, и выбираете Gradle JVM (вы пропустили это, когда импортировали проект gradle в IntelliJ)

введите описание изображения здесь

Не забудьте при импорте проекта Gradle (или Maven) правильно установить целевую JVM здесь: введите описание изображения здесь

Юлиангонсалес
источник
14

Ваш javac не указывает на правильный java.

Проверьте, куда указывает ваш javac, используя следующую команду -

update-alternatives --config javac

Если он не указывает на javac, с которым вы хотите скомпилировать, укажите его на «/ JAVA8_HOME / bin / javac» или на какой-либо java, с которым вы хотите скомпилировать.

Пиюш Джаджу
источник
почему -1, у меня была бы та же проблема, и это было потому, что мой javac не был настроен на правильную версию java?
Пиюш Джаджу 08
Помните, что конфигурация может быть нарушена из-за того, что java и javac взяты из разных дистрибутивов!
Audrius Meskauskas
9

В большинстве случаев проблемы такого типа возникают из-за неправильной версии Java. Убедитесь, что ваши переменные PATH и JAVA_HOME указывают на правильную версию.

призма
источник
Ага, это тоже была моя причина
парень мограби
4

Настройка Maven:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
it-webwork
источник
4

Ни одно из предыдущих решений у меня не помогло.

Я решил это, отредактировав .idea / compiler.xml. Были "лишние" (1) и (2) копии плохого модуля с разными целями. Я удалил посторонние заклинания и изменил цели в разделе на 1.8, и все заработало.

Билл Масек
источник
Это исправило это и для меня.
Дэвидмеррик
2

Для последней версии IntelliJ IDEA Ultimate по состоянию на 18 декабря 2017 г., если приведенные выше предложения не работают, попробуйте следующее: Щелкните правой кнопкой мыши проект и перейдите к «Открыть настройки модуля». Откройте его, затем измените «Уровень языка» в раскрывающемся списке.

NINCOMPOOP
источник
Также убедитесь, что в настройках модуля на вкладке «Зависимости» выбран правильный SDK модуля.
Rene Juuse
2

Просто сделай это . Затем аннулируйте кеши IntelliJ ( File -> Invalidate Caches)

пользователь3399000
источник
1

если вы собираетесь уйти в отставку, то также измените источник вашего проекта на 1.7,

щелкните правой кнопкой мыши свой проект -> Свойства -> окно "Источники" и установите здесь 1,7 "Джигар Джоши

Также перейдите к build-impl.xmlи найдите свойство excludeFromCopy="${copylibs.excludes}"и удалите это свойство в моем коде в строке 827, но я видел его в других строках

для меня был код от MAC OS java 1.8 до WIN XP java 1.7

JAG NUNEZ
источник
1

В качестве альтернативы я проверил pom.xml и изменил

<java.version>1.8</java.version>

к

<java.version>1.7</java.version>
наноспек
источник
Грасиас, это исправило это для меня, так просто.
Fabii
1

У меня такая же проблема с netbeans, но mvn build в порядке в окне cmd. Для меня проблема решена после изменения JDK netbeans (в netbeans.conf, как показано ниже),

netbeans_jdkhome = "C: \ Program Files \ Java \ jdk1.8.0_91"


Изменить: похоже, здесь упоминается: ошибка netbeans 236364

Леон
источник
1

У меня такая же проблема в сообществе IntelliJ IDEA с Maven, и мне пришлось повторно импортировать проект, щелкнув проект правой кнопкой мыши на вкладке Project -> Maven -> Reimport

Csa77
источник
0

Установка более новой версии сообщества IDEA (2018.3 вместо 2017.x) решила мою проблему с той же ошибкой, но версия java: 11. Reimport не помог мне. Но попробовать стоит.

Ласло Лугоши
источник