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.

Program-Me-Rev
la source
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

Jigar Joshi
la source
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

Vikasing
la source
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.

thorinkor
la source
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

juliangonzalez
la source
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.

Piyush Jajoo
la source
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.

jprism
la source
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>
it-webwork
la source
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é.

Bill Masek
la source
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.

CORNICHON
la source
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)

user3399000
la source
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

JAG NUNEZ
la source
1

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

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

à

<java.version>1.7</java.version>
nanospeck
la source
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

Léon
la source
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

Csa77
la source
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.

Laszlo Lugosi
la source