Utilisation du projet Jetbrains 11.2 basé sur un projet Maven. Ensuite, j'ai dû passer à la 1.7. J'ai installé 1.7, j'ai mis à jour mon pom.xml et je peux reconstruire le paquet entier en utilisant ok maven.
J'ai modifié tous les paramètres que je peux voir dans les paramètres des projets Intelli concernant Java
mais je n'arrive pas à le faire compiler un fichier dont il se plaint:
Error:javac target release of 1.6 conflicts with source release 1.7
J'ai ensuite essayé sur mon autre machine de développement en utilisant la même base de code mais un projet Intellij différent et à ce sujet, j'obtiens une erreur similaire:
Error:javac: source release 1.7 requires target release 1.7
Je ne vois rien d'autre à changer pour que cela fonctionne.
Doh, je l'ai trouvé
Fichier/Paramètres/Compilateur Java/Paramètres de ligne de commande supplémentaires
changé de - cible 1.6 à - cible 1.7
Il semble cependant plus étrange qu'il soit ici, déconnecté du reste des options connexes.
Comme solution alternative, qui a fonctionné pour moi consiste à enregistrer Paramètres du module la propriété Niveau de langue. Il a été défini sur 8.0 Lambdas
et remplacé par 6.0 @Overrides in interfaces
, et après cette compilation a fonctionné sans erreur.
Vous pouvez changer la version du compilateur ici:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler
Maintenant, changez Target bytecode version
à celui souhaité.
Vous pouvez changer la version du compilateur ici:
Intellij IDEA -> Preferences -> Compiler -> Java Compiler
-> Project bytecode version -> 1.7 (for example)
Pour IntelliJ 12, j'ai résolu ce problème en ouvrant le fichier: structure du projet et en mettant à jour le SDK du projet vers 1.7 et le niveau de langue du projet vers "7.0 - Diamants, ARM, multi-catch etc."
Si vous n'avez pas configuré IntelliJ avec JDK 1.7, ajoutez-le avec le bouton "Nouveau". Sélectionnez le type "JDK".
J'ai rencontré le même problème. Je l'ai résolu par Intellij IDEA -> Préférences -> Compilateur -> Java Compilateur -> Projet bytecode version -> 1.7 & Target bytecode version -> 1.7
Une autre solution potentielle consiste à vous assurer que votre fichier de construction a la version codée en dur comme indiqué ici
<javac target="1.7" source="1.7" ... />
par opposition à
<property name="Java.version" value="1.7" />
<javac target="${Java.version}" source="${Java.version}" ... />
Bien que cela puisse être dû à ma mauvaise compréhension du fonctionnement des variables dans les fichiers de construction. On pourrait penser que cela aurait du sens