javac: rilascio di destinazione non valido: 1.8


87

Di recente ho scaricato JDK 1.8.0.0_06 fornito in bundle con NetBeans. Ho quindi scoperto che il mio progetto JavaFx, che ho sviluppato in Java 1.7, non si compilava in Java 1.8, e quindi ho ridotto il mio JDK a 1.7. Ancora non riesco a farlo funzionare / compilare. Ottengo questo errore:

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

Sono davvero bloccato e apprezzerei molto qualsiasi aiuto.


1
se hai intenzione di fare un passo indietro, cambia anche l'origine del tuo progetto in 1.7, fai clic con il tasto destro sul tuo Project -> Properties -> Sources windowe imposta 1.7 qui
jmj

Sei un salvavita @Jigar Joshi !!!! Grazie ancora ***** un mulino. Sono così grato. Potresti mettere la tua risposta come risposta in modo che io possa accettarla. Wow! Grazie ancora. Era rimasto bloccato per così tanto tempo!
Program-Me-Rev

Se il tuo progetto non verrà compilato con Java 1.8, probabilmente stai facendo qualcosa di gravemente sbagliato (ad esempio, hai campi statici per i componenti dell'interfaccia utente nel codice che hai pubblicato nell'altra domanda, il che è un grave errore di progettazione). Probabilmente è meglio risolvere questo problema piuttosto che tornare a una versione da cui molti utenti si aggiorneranno in futuro.
James_D

Hai ragione @James_D. Questo è il mio primo progetto in java. Ho praticamente imparato a programmare da solo, e fino ad ora non ho capito tutto sull'evitare membri statici, interfacce e il resto del polimorfismo. Il mio progetto è un po 'troppo grande per essere modificato tutto in una volta. Ho intenzione di modificarlo e passare all'iniezione di dipendenze tramite Spring un po 'alla volta mentre finisco sulle altre aree rimanenti. È una lezione dolorosa, ma ben imparata.
Program-Me-Rev

1
Esistono versioni di Java 1.8.0, 1.8.0_05 e 1.8.0_11, ma non esiste 1.8.0.0_06.
David Conrad

Risposte:


33

se hai intenzione di fare un passo indietro, cambia anche l'origine del tuo progetto in 1.7,

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

e impostare 1.7qui

nota: tuttavia ti suggerirei di capire perché non funziona su 1.8


65

Per IntelliJ14 potresti dover cambiare la versione del bytecode rispetto al JDK che stai utilizzando (nelle impostazioni globali):

inserisci qui la descrizione dell'immagine


Non funziona per me, cambio la versione del bytecode di destinazione a 1.8 ma ottengo lo stesso errore
tribbloid

Ma la domanda riguardava Netbeans?
Jolta

27
  1. Scarica JDK 8 .
  2. Modifica la tua env var per JAVA_HOMEpuntare al nuovo JDK 1.8 installato: R-clic su Risorse del computer -> Proprietà -> Impostazioni di sistema avanzate -> Variabili d'ambiente trova JAVA_HOMEnell'elenco e imposta il suo valore su qualcosa del genere:

    C:\Program Files\Java\jdk1.8.0_31
    
  3. Trova la vecchia versione e modificala anche nella PATHvariabile.

  4. Probabilmente dovrai riavviare il sistema.

Dovrebbe essere fatto.


23

Se questo errore si verifica durante l'esecuzione di un'attività Gradle (o Maven), è necessario modificare la configurazione dello strumento di compilazione in modo che punti all'installazione di Java JDK 1.8 seguendo questo percorso:

File -> Impostazioni -> Build, Execution, Deployment -> Build Tools -> Gradle

Qui controlli che il progetto Linked Gradle è quello su cui stai lavorando e seleziona Gradle JVM (ti sei perso questo quando hai importato il progetto gradle in IntelliJ)

inserisci qui la descrizione dell'immagine

Ricorda quando importi un progetto Gradle (o Maven) per impostare correttamente la JVM di destinazione qui: inserisci qui la descrizione dell'immagine


14

Il tuo javac non punta a correggere java.

Controlla dove sta puntando il tuo javac usando il seguente comando:

update-alternatives --config javac

Se non è puntato al javac con cui vuoi compilare, puntalo su "/ JAVA8_HOME / bin / javac", o con quale java vuoi compilare.


perché -1, avevo lo stesso problema, e questo perché il mio javac non era impostato per correggere la versione java?
Piyush Jajoo

Tieni presente che la configurazione può essere interrotta nel modo in cui java e javac vengono selezionati da distribuzioni diverse!
Audrius Meskauskas

9

La maggior parte delle volte, questo tipo di problemi si verificano a causa di una versione java errata. Assicurati che le tue variabili PATH e JAVA_HOME puntino alla versione corretta.


Sì - anche quella era la mia causa
guy mograbi

4

Impostazione Maven:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

3

Nessuna delle soluzioni precedenti ha funzionato per me.

L'ho risolto modificando .idea / compiler.xml C'erano copie "extra" (1) e (2) del modulo danneggiato con obiettivi diversi. Ho cancellato le richieste estranee e ho cambiato gli obiettivi nella sezione in 1.8 e ha funzionato.


Anche per me è stato risolto.
davidmerrick

2

Per l'ultima versione di IntelliJ IDEA Ultimate del 18 dicembre 2017, se i suggerimenti di cui sopra non funzionano, provare quanto segue: Fare clic con il pulsante destro del mouse sul progetto e accedere a "Apri impostazioni modulo". Aprilo, quindi modifica il "Livello di lingua" dal menu a discesa.


Assicurati inoltre che in Impostazioni modulo nella scheda Dipendenze sia selezionato il modulo SDK corretto.
Rene Juuse

1

se hai intenzione di fare un passo indietro, cambia anche l'origine del tuo progetto in 1.7,

fai clic con il pulsante destro del mouse sul tuo progetto -> Proprietà -> finestra Fonti e imposta 1.7 qui "Jigar Joshi

Vai anche a build-impl.xmle cerca la proprietà excludeFromCopy="${copylibs.excludes}"ed elimina questa proprietà sul mio codice era alla riga 827 ma l'ho visto su altre righe

per me stava prendendo un codice da MAC OS java 1.8 a WIN XP java 1.7


1

In alternativa, ho controllato il pom.xml e ho cambiato

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

per

<java.version>1.7</java.version>

Gracias, questo mi ha risolto, così semplice.
Fabii

1

Ho avuto lo stesso problema con netbeans, ma la build di mvn è OK nella finestra di cmd. Per me il problema è stato risolto dopo aver modificato il JDK di netbeans (in netbeans.conf come sotto),

netbeans_jdkhome = "C: \ Programmi \ Java \ jdk1.8.0_91"


Modifica: sembra che sia menzionato qui: bug netbeans 236364



0

Ho avuto lo stesso problema in IntelliJ IDEA Community con Maven e ho dovuto reimportare il progetto facendo clic con il pulsante destro del mouse sul progetto nella scheda Progetto -> Maven -> Reimport


-1

L'installazione di una versione più recente di IDEA Community (2018.3 invece di 2017.x) ha risolto il mio problema con lo stesso errore ma la versione java: 11. Reimport non aveva funzionato per me. Ma vale la pena provare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.