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>

Я справді застряг і був би дуже вдячний за допомогу.


1
якщо ви збираєтеся піти з посади, тоді також змініть джерело проекту на 1.7, клацніть правою кнопкою миші Project -> Properties -> Sources windowі встановіть 1.7 тут
Jigar Joshi

Ви рятувальник життя @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 (у загальних налаштуваннях):

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


Не працює у мене, зміна цільової версії байт-коду на 1.8, але отримую ту саму помилку
tribbloid

Але питання було про Netbeans?
Холта

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

Там ви перевіряєте, зв’язаний проект 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?
Піюш Джаджо

Пам’ятайте, що конфігурація може бути порушена так, як підбираються java та javac з різних дистрибутивів!
Аудріус Мескаускас

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>

4

Жодне з попередніх рішень не працювало для мене.

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


Це виправило це і для мене.
davidmerrick

2

Для останньої версії IntelliJ IDEA Ultimate станом на 18 грудня 2017 року, якщо наведені вище пропозиції не працюють, спробуйте наступне: Клацніть правою кнопкою миші на проекті та перейдіть до пункту "Відкрити налаштування модуля". Відкрийте його, а потім змініть "Рівень мови" зі спадного меню.


Також переконайтеся, що в Налаштуваннях модуля на вкладці Залежності вибрано правильний модуль SDK.
Рене Джуз


1

якщо ви збираєтеся піти з посади, тоді також змініть джерело свого проекту на 1,7,

клацніть правою кнопкою миші на своєму проекті -> Властивості -> Вікно Джерела та встановіть 1.7 тут "Jigar Joshi

Також перейдіть до build-impl.xmlі шукайте властивість excludeFromCopy="${copylibs.excludes}"і видаліть цю властивість у моєму коді в рядку 827, але я бачив це в інших рядках

для мене брав код із MAC OS java 1.8 до WIN XP java 1.7


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: \ Файли програм \ Java \ jdk1.8.0_91"


Редагувати: Здається, тут згадується: помилка netbeans 236364


1

Я отримав таку ж проблему в спільноті IntelliJ IDEA з Maven, і мені довелося повторно імпортувати проект, клацнувши проект правою кнопкою миші на вкладці Проект -> Maven -> Повторний імпорт


0

Встановлення нового випуску IDEA Community (2018.3 замість 2017.x) вирішило мою проблему з тією ж помилкою, але версія Java: 11. Реймпорт у мене не працював. Але варто спробувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.