IntelliJ: Erreur: java: erreur: la version 5 n'est pas prise en charge

14

J'utilise IntelliJ IDEA Ultimate 2019.3.1 . Chaque fois que j'essaie de démarrer un simple projet Java Maven (que ce soit même un simple Hello World), j'obtiens l'erreur suivante:

Error:java: error: release version 5 not supported

En cours java --versiond' exécution par le terminal, j'obtiens la sortie suivante:

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)

En cours javac --versiond' exécution par le terminal, j'obtiens la sortie suivante:

javac 11.0.5

En allant dans les paramètres du compilateur Java (comme suggéré ici ), je vois ceci:

Paramètres du compilateur Java

J'ai essayé de modifier la " version du bytecode cible " en 1.8 mais j'obtiens les erreurs suivantes:

Error:(1, 26) java: package javafx.application does not exist
Error:(2, 20) java: package javafx.stage does not exist
Error:(4, 27) java: cannot find symbol
  symbol: class Application
Error:(12, 23) java: cannot find symbol
  symbol:   class Stage
  location: class Main
Error:(7, 9) java: cannot find symbol
  symbol:   method launch(java.lang.String[])
  location: class Main
Error:(11, 5) java: method does not override or implement a method from a supertype

En le changeant en version 1.11, j'obtiens plutôt cette erreur:

Error:java: Source option 5 is no longer supported. Use 6 or later.

Selon vous, quel est le problème? Comment puis-je le résoudre?

Robb1
la source
Quel est le niveau de langue du projet et des modules?
Bas Leijdekkers

Réponses:

33

Voir  https://stackoverflow.com/a/12900859/104891 .

Tout d'abord, définissez le language level/ release versionsin pom.xmlcomme ça:

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

Sinon, Maven définit la valeur par défaut à 1,5. Vous devrez également inclure le maven-compiler-pluginsi vous ne l'avez pas déjà fait:

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
</dependency>

Essayez également de modifier la version Java dans chacun de ces emplacements:

Fichier -> Structure du projet -> Projet -> SDK du projet -> 11.

Fichier -> Structure du projet -> Projet -> Niveau de langue du projet -> 11.

Fichier -> Structure du projet -> Projet -> Modules -> -> Sources -> 11

Dans le projet -> ctrl+ alt+ s-> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode version -> 11

Dans le projet -> ctrl+ alt+ s-> Build, Execution, Deployment -> Compiler -> Java Compiler -> Module -> 1.11.

Konstantin Annikov
la source
2
J'ai tout fait, mais je vois toujours la même erreur chaque fois que je lance l'application
Tushar Jajodia
@TusharJajodia essaie d'inclure maven-compiler-plugincomme dépendance
Josh Johnson
Après avoir essayé diverses solutions en ligne sans succès, cette ligne particulière a résolu le problème: Fichier -> Structure du projet -> Projet -> Modules -> -> Sources -> 11
Maude
En fait, la bonne façon d'y parvenir pour java 9+ est de définir le maven-compiler-pluginplugin as au lieu de la dépendance. Pas besoin de configurer quoi que ce soit dans IntelliJ, configurez simplement votre pom de la bonne manière et cela fonctionnera dans IntelliJ dès la sortie de la boîte!
Jacob van Lingen
2

Il m'a fallu un certain temps pour agréger une solution réelle, mais voici comment se débarrasser de cette erreur de compilation.

  1. Ouvrez les préférences Intelij
  2. Rechercher "compilateur (ou quelque chose comme" compi "
  3. faites défiler jusqu'à Maven -> compilateur java. Dans le panneau de droite, sera une liste des modules et de leur version de compilation java associée "version de bytecode cible."
  4. Sélectionnez une version> 1.5. Vous devrez peut-être mettre à jour votre jdk si celui-ci n'est pas disponible. entrez la description de l'image ici
borisveis
la source
1

Si vous utilisez Spring Boot en tant que parent, vous devez définir la propriété java.version, car cela définira automatiquement les versions correctes.

<properties>
   <java.version>11</java.version>
</properties>

La propriété définie dans votre propre projet remplace tout ce qui est défini dans le pom parent. Cela remplace toutes les propriétés nécessaires pour compiler vers la version correcte.

Certaines informations peuvent être trouvées ici: https://www.baeldung.com/maven-java-version

V Jansen
la source
Je commence également à apprendre à propos de Spring Boot maintenant, donc ces informations peuvent être vraiment utiles pour moi :) pouvez-vous s'il vous plaît l'expliquer plus en détail? (Dans quel fichier dois-je changer ces propriétés, que dois-je écrire exactement ...?) Merci!
Robb1
1
J'ai ajouté quelques informations supplémentaires dans mon message.
V Jansen
1

si vous utilisez intellj arrivé à la configuration => compilateur changez la version en ur java version actuelle

Sikhumbuzo Sithole
la source
0

J'ajoute le code suivant à mon pom.xmlfichier, cela a résolu mon problème.

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
Jéssica Machado
la source
0

Vous devez ajouter seulement deux lignes dans votre pom.xml et après cela, votre problème aura disparu.
Ajoutez ces deux lignes dans votre pom.xml -

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
Mehedi Abdullah
la source
0

Dans IntelliJ, ouvrez le fichier pom.xml

Ajoutez cette section avant (si votre fichier a déjà une section, ajoutez simplement les lignes ci-dessous à cette section existante):

<properties> 
      <maven.compiler.source>1.8</maven.compiler.source> 
      <maven.compiler.target>1.8</maven.compiler.target> 
   </properties>`
Ali Shah
la source
0

La seule solution qui fonctionnait dans mon cas était d'ajouter le bloc suivant à pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version> <configuration> <release>12</release>
        </configuration>
        </plugin>
    </plugins>
</build>
Muhammed Gül
la source