javac: nieprawidłowe wydanie docelowe: 1.8

87

Niedawno pobrałem JDK 1.8.0.0_06, który jest dostarczany w pakiecie z NetBeans. Potem dowiedziałem się, że mój projekt JavaFx, który pracowałem w Javie 1.7, nie będzie się kompilował w Javie 1.8, więc zszedłem z mojego JDK do 1.7. Nadal nie mogę go uruchomić / skompilować. Otrzymuję ten błąd:

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

Naprawdę utknąłem i byłbym bardzo wdzięczny za każdą pomoc.

Program-Me-Rev
źródło
1
jeśli zamierzasz zrezygnować, zmień również źródło swojego projektu na 1.7, kliknij prawym przyciskiem myszy Project -> Properties -> Sources windowi ustaw tutaj 1.7
Jigar Joshi
Jesteś ratownikiem życia @Jigar Joshi !!!! Jeszcze raz dziękuję ***** za młyn. Jestem bardzo wdzięczny. Możesz podać swoją odpowiedź jako odpowiedź, abym mógł ją przyjąć. Łał! Jeszcze raz dziękuję. Utknąłem tak długo!
Program-Me-Rev
Jeśli twój projekt nie skompiluje się w Javie 1.8, prawdopodobnie robisz coś bardzo złego (na przykład masz statyczne pola dla komponentów UI w kodzie, który opublikowałeś w innym zapytaniu, co jest poważnym błędem projektowym). Prawdopodobnie lepiej jest rozwiązać ten problem, niż tylko powrócić do wersji, z której wielu użytkowników dokona aktualizacji w pewnym momencie w przyszłości.
James_D,
Masz rację @James_D. To jest mój pierwszy projekt w Javie. Prawie nauczyłem się programowania i do tej pory nie rozumiałem wszystkiego o unikaniu statycznych elementów członkowskich, interfejsów i całej reszty o polimorfizmie. Mój projekt jest trochę za duży, aby można go było edytować od razu. Planuję go edytować i krok po kroku przechodzić do wstrzykiwania zależności przez Spring, gdy skończę na innych pozostałych obszarach. To bolesna lekcja, ale dobrze nauczona.
Program-Me-Rev
1
Istnieją wersje Javy 1.8.0, 1.8.0_05 i 1.8.0_11, ale nie ma czegoś takiego jak 1.8.0.0_06.
David Conrad,

Odpowiedzi:

33

jeśli zamierzasz zrezygnować, zmień również źródło swojego projektu na 1.7,

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

i ustaw 1.7tutaj

uwaga: jednak sugerowałbym ci dowiedzieć się, dlaczego to nie działa na 1.8

Jigar Joshi
źródło
66

W przypadku IntelliJ14 może być konieczna zmiana wersji kodu bajtowego w używanym JDK (w ustawieniach globalnych):

wprowadź opis obrazu tutaj

Vikasing
źródło
Nie działa dla mnie, zmieniam docelową wersję kodu bajtowego na 1.8, ale
pojawia
Ale pytanie dotyczyło Netbeans?
Jolta
27
  1. Pobierz JDK 8 .
  2. Edytuj zmienną env, JAVA_HOMEaby wskazywać na nowo zainstalowany JDK 1.8: kliknij prawym przyciskiem myszy Mój komputer -> Właściwości -> Zaawansowane ustawienia systemu -> Zmienne środowiskowe znajdź JAVA_HOMEna liście i ustaw jego wartość na coś takiego:

    C:\Program Files\Java\jdk1.8.0_31
    
  3. Znajdź starą wersję i edytuj ją również w PATHzmiennej.

  4. Prawdopodobnie będziesz musiał ponownie uruchomić system.

Powinno być zrobione.

thorinkor
źródło
23

Jeśli ten błąd wystąpi podczas uruchamiania zadania Gradle (lub Maven), należy zmodyfikować konfigurację tego narzędzia do budowania, aby wskazywała na instalację Java JDK 1.8 następującą trasą:

Plik -> Ustawienia -> Kompilacja, wykonanie, wdrożenie -> Narzędzia kompilacji -> Gradle

Tam sprawdzasz, czy projekt Linked Gradle jest tym, nad którym pracujesz, i wybierasz Gradle JVM (przegapiłeś to podczas importowania projektu gradle do IntelliJ)

wprowadź opis obrazu tutaj

Pamiętaj, importując projekt Gradle (lub Maven), aby poprawnie ustawić docelową maszynę JVM tutaj: wprowadź opis obrazu tutaj

juliangonzalez
źródło
14

Twój javac nie wskazuje na poprawną wersję java.

Sprawdź, gdzie wskazuje twój javac, używając następującego polecenia -

update-alternatives --config javac

Jeśli nie jest wskazany na javac, z którym chcesz się skompilować, wskaż go "/ JAVA8_HOME / bin / javac" lub kiedykolwiek java, z którym chcesz kompilować.

Piyush Jajoo
źródło
dlaczego -1, miałem ten sam problem, a to dlatego, że mój javac nie był ustawiony na poprawną wersję java?
Piyush Jajoo
Pamiętaj, że konfiguracja może zostać zepsuta w sposób, w jaki java i javac są wybierane z różnych dystrybucji!
Audrius Meskauskas
9

W większości przypadków tego typu problemy występują z powodu nieprawidłowej wersji Java. Upewnij się, że zmienne PATH i JAVA_HOME wskazują na poprawną wersję.

jprism
źródło
Tak - to też była moja sprawa
facet mograbi
4

Ustawienie Mavena:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
it-webwork
źródło
4

Żadne z poprzednich rozwiązań nie zadziałało.

Rozwiązałem to edytując .idea / compiler.xml. Były „dodatkowe” (1) i (2) kopie złego modułu z różnymi celami. Usunąłem nieistotne wprowadzone dane i zmieniłem cele w sekcji na 1.8 i zadziałało.

Bill Masek
źródło
To naprawiło to również dla mnie.
davidmerrick
2

W przypadku najnowszej wersji IntelliJ IDEA Ultimate z 18 grudnia 2017 r., Jeśli powyższe sugestie nie działają, spróbuj wykonać następujące czynności: Kliknij projekt prawym przyciskiem myszy i przejdź do opcji „Otwórz ustawienia modułu”. Otwórz go, a następnie zmień „Poziom języka” z menu.

GŁUPEK
źródło
Upewnij się również, że w ustawieniach modułu na karcie Zależności wybrano właściwy moduł SDK.
Rene Juuse
2

Po prostu zrób to . Następnie unieważnij pamięci podręczne IntelliJ ( File -> Invalidate Caches)

user3399000
źródło
1

jeśli zamierzasz zrezygnować, zmień również źródło swojego projektu na 1.7,

kliknij prawym przyciskiem myszy na swój Projekt -> Właściwości -> Źródła i ustaw tutaj 1.7 "Jigar Joshi

Przejdź także do build-impl.xmli poszukaj właściwości excludeFromCopy="${copylibs.excludes}"i usuń tę właściwość w moim kodzie w wierszu 827, ale widziałem to w innych wierszach

dla mnie brałem kod z MAC OS java 1.8 do WIN XP java 1.7

JAG NUNEZ
źródło
1

Alternatywnie sprawdziłem pom.xml i zmieniłem

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

do

<java.version>1.7</java.version>
nanospeck
źródło
Gracias, to naprawiło to dla mnie, takie proste.
Fabii
1

Mam ten sam problem z netbeans, ale kompilacja mvn jest OK w oknie cmd. Dla mnie problem rozwiązany po zmianie JDK netbeans (w netbeans.conf jak poniżej),

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


Edycja: Wydaje się, że jest to tutaj wspomniane: błąd netbeans 236364

Leon
źródło
1

Otrzymałem ten sam problem w społeczności IntelliJ IDEA z Mavenem i musiałem ponownie zaimportować projekt, klikając prawym przyciskiem myszy projekt na karcie Projekt -> Maven -> Reimport

Csa77
źródło
0

Zainstalowanie nowszej wersji IDEA Community (2018.3 zamiast 2017.x) rozwiązało mój problem z tym samym błędem, ale w wersji java: 11. Reimport nie zadziałał dla mnie. Ale warto spróbować.

Laszlo Lugosi
źródło