javac: version cible non valide: 1.8


87

J'ai récemment téléchargé le JDK 1.8.0.0_06 fourni avec NetBeans. J'ai ensuite découvert que mon projet JavaFx, que j'ai développé en Java 1.7 ne se compilera pas en Java 1.8, et j'ai donc abandonné mon JDK à 1.7. Je n'arrive toujours pas à le faire fonctionner / compiler. J'obtiens cette erreur:

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

Je suis vraiment coincé et j'apprécierais grandement toute aide.


1
si vous allez démissionner, changez également la source de votre projet en 1.7, faites un clic droit sur votre Project -> Properties -> Sources windowet définissez 1.7 ici
Jigar Joshi

Vous êtes un sauveur de vie @Jigar Joshi !!!! Merci encore ***** un moulin. Je suis si reconnaissant. Vous pouvez mettre votre réponse comme réponse afin que je puisse l'accepter. Hou la la! Encore merci. Avait été coincé depuis si longtemps!
Program-Me-Rev

Si votre projet ne se compile pas sous Java 1.8, vous faites probablement quelque chose de très mal (par exemple, vous avez des champs statiques pour les composants de l'interface utilisateur dans le code que vous avez publié dans votre autre requête, ce qui est une grave erreur de conception). Il est probablement préférable de résoudre ce problème que de simplement revenir à une version à partir de laquelle de nombreux utilisateurs mettront à niveau à un moment donné dans le futur.
James_D

Vous avez raison @James_D. C'est mon premier projet en java. Je me suis pratiquement enseigné la programmation et je n'avais pas tout compris pour éviter les membres statiques, les interfaces et le reste sur le polymorphisme jusqu'à présent. Mon projet est un peu trop gros pour être édité en une seule fois. Je prévois de le modifier et de passer progressivement à l'injection de dépendances via Spring au fur et à mesure que je termine sur les autres domaines restants. C'est une leçon douloureuse, mais bien apprise.
Program-Me-Rev

1
Il existe des versions de Java 1.8.0, 1.8.0_05 et 1.8.0_11, mais il n'existe pas de version 1.8.0.0_06.
David Conrad

Réponses:


33

si vous comptez vous retirer, changez également la source de votre projet en 1.7,

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

et mettre 1.7ici

note: cependant, je vous suggère de comprendre pourquoi cela ne fonctionne pas sur 1.8


66

Pour IntelliJ14, vous devrez peut-être changer la version du bytecode par rapport au JDK que vous utilisez (dans les paramètres globaux):

entrez la description de l'image ici


Ne fonctionne pas pour moi, changer la version de bytecode cible en 1.8 mais obtenir la même erreur
tribbloid

Mais la question portait sur Netbeans?
Jolta

27
  1. Télécharger le JDK 8 .
  2. Modifiez votre JAVA_HOMEvariable d'environnement pour pointer vers le nouveau JDK 1.8 installé: R-cliquez sur Poste de travail -> Propriétés -> Paramètres système avancés -> Les variables d'environnement se trouvent JAVA_HOMEdans la liste et définissez sa valeur sur quelque chose comme ça:

    C:\Program Files\Java\jdk1.8.0_31
  3. Recherchez l'ancienne version et modifiez-la dans PATH variable.

  4. Vous devrez probablement redémarrer le système.

Devrait être fait.


23

Si cette erreur se produit lors de l'exécution d'une tâche Gradle (ou Maven), vous devez modifier la configuration de cet outil de construction pour pointer vers votre installation de Java JDK 1.8 en suivant cette route:

Fichier -> Paramètres -> Construction, exécution, déploiement -> Outils de construction -> Gradle

Là, vous vérifiez que le projet Gradle lié est celui sur lequel vous travaillez et sélectionnez la JVM Gradle (vous l'avez manqué lorsque vous avez importé le projet Gradle dans IntelliJ)

entrez la description de l'image ici

N'oubliez pas lors de l'importation d'un projet Gradle (ou Maven) de définir correctement la JVM cible ici: entrez la description de l'image ici


14

Votre javac ne pointe pas vers Java correct.

Vérifiez où votre javac pointe en utilisant la commande suivante -

update-alternatives --config javac

S'il n'est pas pointé vers le javac avec lequel vous voulez compiler, pointez-le vers "/ JAVA8_HOME / bin / javac", ou sur le java avec lequel vous voulez compiler.


pourquoi -1, j'aurais le même problème, et c'était parce que mon javac n'était pas configuré pour corriger la version java?
Piyush Jajoo

Gardez à l'esprit que la configuration peut être interrompue de la même manière que java et javac sont sélectionnés dans différentes distributions!
Audrius Meskauskas

9

La plupart du temps, ce type de problèmes survient en raison d'une version Java incorrecte. Assurez-vous que vos variables PATH et JAVA_HOME pointent vers la version correcte.


Ouais - c'était ma cause aussi
guy mograbi

4

Réglage Maven:

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

4

Aucune des solutions précédentes n'a fonctionné pour moi.

Je l'ai résolu en éditant .idea / compiler.xml Il y avait des copies "extra" (1) et (2) du mauvais module avec des cibles différentes. J'ai supprimé les entrées superflues et changé les cibles de la section en 1.8 et cela a fonctionné.


Cela a aussi réglé le problème pour moi.
davidmerrick

2

Pour la dernière version d'IntelliJ IDEA Ultimate au 18 décembre 2017, si les suggestions ci-dessus ne fonctionnent pas, essayez ce qui suit: Cliquez avec le bouton droit sur le projet et accédez à «Ouvrir les paramètres du module». Ouvrez-le, puis modifiez le "Niveau de langue" dans la liste déroulante.


Assurez-vous également que dans Paramètres du module sous l'onglet Dépendances, le SDK de module correct est choisi.
Rene Juuse

2

Il suffit de faire cela . Puis invalidez les caches IntelliJ ( File -> Invalidate Caches)


1

si vous comptez vous retirer, changez également la source de votre projet en 1.7,

faites un clic droit sur votre projet -> Propriétés -> fenêtre Sources et définissez 1.7 ici "Jigar Joshi

Allez aussi à la build-impl.xmlet recherchez la propriétéexcludeFromCopy="${copylibs.excludes}" et supprimez cette propriété sur mon code était à la ligne 827 mais je l'ai vue sur d'autres lignes

pour moi, je prenais un code de MAC OS java 1.8 à WIN XP java 1.7


1

Alternativement, j'ai vérifié le pom.xml et changé

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

à

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

Gracias, ça m'a arrangé, si simple.
Fabii

1

J'ai eu le même problème avec netbeans, mais mvn build est OK dans la fenêtre cmd. Pour moi, le problème a été résolu après avoir changé le JDK de netbeans (dans netbeans.conf comme ci-dessous),

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


Edit: On dirait qu'il est mentionné ici: bogue netbeans 236364


1

J'ai eu le même problème dans IntelliJ IDEA Community avec Maven et j'ai dû réimporter le projet en cliquant avec le bouton droit sur le projet dans l'onglet Projet -> Maven -> Réimporter


0

L'installation d'une version plus récente de IDEA Community (2018.3 au lieu de 2017.x) a résolu mon problème avec la même erreur mais la version java: 11. La réimportation n'avait pas fonctionné pour moi. Mais ça vaut le coup d'essayer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.