L'utilisation d'IntelliJ IDE ne peut pas compiler de projets. Captures d'écran des paramètres ci-dessous:
JDK d'occasion:
SDK du projet et niveau de langue:
Niveau de langue:
Quelqu'un a des idées?
L'utilisation d'IntelliJ IDE ne peut pas compiler de projets. Captures d'écran des paramètres ci-dessous:
JDK d'occasion:
SDK du projet et niveau de langue:
Niveau de langue:
Quelqu'un a des idées?
Réponses:
Si vous utilisez Maven
Ajoutez le plugin du compilateur pom.xml
sous le project
nœud de niveau supérieur :
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
(Tiré des commentaires.)
Remarque: Si cela ne vous dérange pas de réimporter votre projet, la seule chose que vous devez vraiment faire est de modifier le pom et de réimporter le projet, alors IntelliJ récupérera les paramètres corrects et vous n'aurez pas à les modifier manuellement.
Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK
.
Cela ressemble au type d'erreur que Maven génère lorsque vous n'avez pas configuré correctement le plugin du compilateur. Voici un exemple de configuration de compilateur Java 8.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
</project>
project
, build
, et plugins
.
<source>1.8</source>
et <target>1.8</target>
est configuré, l'erreur ci-dessus peut se produire.
java compiler
Dans la fenêtre Paramètres, définissez le bytecode cible sur 1,8
(ou 9 pour java9)
Il existe deux façons de résoudre ce problème:
De nombreuses réponses concernant Maven sont correctes mais vous n'avez pas à configurer directement le plugin.
Comme décrit sur la page wiki du plugin du compilateur Apache Maven, vous pouvez simplement définir les 2 propriétés utilisées par le plugin.
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
org.apache.maven.plugins:maven-compiler-plugin
dans votre fichier pom ou gradle, ce que la documentation a l'intention de dire est que le fait d'avoir cette propriété définie dans les propriétés pom sera suffisant, essentiellement parce qu'ils définissent les valeurs par défaut du plugin, par exemple <source> $ { maven.compiler.source} </source>
J'ai corrigé cela en allant dans Structure du projet -> Modules , recherchez le module en question, cliquez sur l' onglet Dépendances , passez Module SDK
à Project SDK
.
Je l'ai corrigé juste en changeant la version de compilation cible en 1.8. C'est dedans:
Fichier >> Paramètres >> Build, Execution, Deployment >> Compiler >> Java Compiler
Dans mon cas, j'ai résolu ce problème en ouvrant le fichier .iml du projet (il se trouve dans le dossier racine du projet et a le même nom que le nom du projet) et en changeant la ligne <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
en<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
J'ai tout configuré comme dans les autres réponses ici, mais pour une raison quelconque, Idea a mis à jour le fichier .iml de manière incorrecte.
Je l'ai corrigé en modifiant mon fichier POM. Remarquez le dernier commentaire sous la réponse la plus votée.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
La source doit correspondre à la cible.
Dans votre fichier de niveau d'application Gradle >> compileOptions ajoutez ces deux lignes
android {
compileOptions {
...
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
...
}
}
Sous le fichier compiler.xml, vous trouverez:
<bytecodeTargetLevel>
<module name="your_project_name_main" target="1.8" />
<module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>
et vous pouvez changer la valeur cible de votre ancienne à la nouvelle pour moi, je devais la changer de 1,5 à 1,8
Pour moi, le problème était que Maven n'était pas en mesure de trouver les configurations appropriées, car ces éléments étaient spécifiés dans le pom parent.
Changer de fichier -> Paramètres -> Construire, exécuter, déployer -> Maven -> Fichier de paramètres utilisateur pour pointer vers mes paramètres personnalisés avec des référentiels appropriés a corrigé le problème qui se cachait autrement.
Vous avez découvert le problème via l'aide -> Afficher l'explorateur de journal -> en cliquant sur le fichier journal, alors que précédemment seulement obtenu l'erreur dans le titre et "java.lang.NullPointerException" dans la console.
Avec Intellij , en utilisant Maven , vous devez vérifier qu'Intellij a importé automatiquement votre projet. Vous pouvez vérifier en cliquant sur l'onglet Maven à droite de votre éditeur.
Si votre projet n'est pas ici, ajoutez le pom.xml
fichier en cliquant sur +
.
De toute évidence, le projet doit également avoir les éléments suivants <build/>
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Si aucune des autres réponses ne fonctionne, vérifiez le SDK de votre module .
J'ai eu cette erreur pour moi après avoir mis à jour le SDK du projet en 1.8, le compilateur Javac en 1.8, etc. Le paramètre qui était le problème pour moi était le "Module SDK".
(sous Linux) Allez File > Project Structure...
ensuite dans la fenêtre qui s'ouvre, sélectionnez Modules
sous Project Settings
. Sélectionnez le module en question dans la liste, puis l' Dependencies
onglet et assurez-vous qu'il Module SDK
est correctement configuré.