web-dev-qa-db-fra.com

fonction intellij (...) non prise en charge à ce niveau de langue. Je ne peux pas compiler

IntelliJ me montre cette erreur

Je viens de construire mon nouvel ordinateur et aucun de mes fichiers Java ne fonctionne. Mon Intellij ordinaire fonctionnait lorsque je l'ai essayé pour la première fois, mais mon studio Android ne s'installera pas car il ne pourrait pas trouver le chemin d'accès au jdk. Ici est la question que j'ai posée à ce sujet. Comme cela ne fonctionnait pas, j'ai dû réinstaller Java plusieurs fois, et maintenant, mon IntelliJ ne fonctionne plus. Voici une photo de l'erreur (je reçois une erreur qui me dit que les boucles for-each ne sont pas prises en charge à ce niveau de langue).

J'ai essayé d'installer le JDK sur mon lecteur D: et cela n'a pas fonctionné. J'essaie actuellement d'utiliser Java 1.8u71 (j'ai essayé les u65 et 1.7u47), mais aucun n'a fonctionné.

18
Seth G.

IntelliJ me montre cette erreur

are not supported at this language level

Faire correspondre le SDK/JDK avec le niveau de langue du projet

Pour activer les fonctionnalités du langage Java dans l'éditeur, vous devez modifier le Structure du projet ​​ou Paramètres du module afin de vous assurer que votre Project SDK correspond à la - Niveau de langue du projet.

Le Kit de développement de projet (JDK) Java 1.5 correspond au niveau de langue de projet 5 ...

Java 1.6 correspond au niveau de langue 6 ...

Java 1.7 correspond au niveau de langue 7, etc.

Exemple

En fonction de votre version d'IntelliJ, appuyez sur F4 ou Ctrl + Alt + Shift - S sur votre module dans la fenêtre Projet, ou appuyez sur Ctrl + Shift - A et tapez "Structure du projet" ou "Paramètres du module" pour ouvrir la boîte de dialogue Structure du projet.

Sous la section Paramètres du projet, cliquez sur le premier élément de la liste, Projet.

Dans la capture d'écran ci-dessous, la version 1.8 (Java version '1.8.0_72') de Project SDK correspond au niveau de langue sélectionné SDK Default (8 - Lambdas, type annotations etc.) car Java 1.8 correspond au niveau de SDK de niveau 8. Ceci active les fonctionnalités du langage Java 8 à utiliser dans l'éditeur.

project structure

Si vous n'avez pas configuré le JDK sous Project SDK, le problème est différent. Résolvez ce problème en premier en cliquant sur New et en ajoutant un JDK.

31
activedecay

Quand j'avais plusieurs modules indépendants dans le projet, je devais faire le réglage ci-dessous en plus de @ activedecay answer : Sous Project Settings, cliquer sur Modules. Sélectionnez un module spécifique. Sélectionnez le Language Level approprié.

 Screenshot

15
ramtech

J'ai eu ce même problème et aucune des solutions que j'ai trouvées n'a fonctionné. 

J'utilisais des projets Maven et j'ai donc décidé de lancer un maven install. Il a aussi dit:

[ERROR]  thefile.Java:[24,77] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] theFile.Java:[91,62] lambda expressions are not supported in -source 1.5
[ERROR] (use -source 8 or higher to enable lambda expressions)

J'ai donc ajouté les propriétés au fichier Maven build pom.xml:

<properties>
    <spring.version>4.1.6.RELEASE</spring.version>
    <Java.version>1.8</Java.version>
    <maven.compiler.source>${Java.version}</maven.compiler.source>
    <maven.compiler.target>${Java.version}</maven.compiler.target>
</properties>

Et rafraîchi le projet Maven dans IntelliJ. Ça a marché!

2
HankCa

J'ai aussi eu le même problème.

Alors que j'accédais à une méthode statique d’interface via le nom de l’interface, j’ai eu l’erreur disant

les appels de méthode d'interface statique ne sont pas pris en charge à ce niveau de langue 5

Comme il s’agit de Java 1.8, j’ai vérifié certaines choses:

  1. J'utilise Intellij. Donc en faisant CTRL+ALT+SHIFT+S La boîte de dialogue Structure du projet s'ouvre, allez à

    Projet -> Niveau de langue du projet

    définissez cette option sur SDK par défaut (8-Lambdas, annotations de type, etc.).

  2. Dans la structure du projet ouvert

    Modules -> Sources -> Niveau de langue

    définissez ceci sur Projet par défaut (8-Lambdas, annotations de type, etc.).

  3. Appliquer-> OK.

Alors l'erreur disparaîtra.

2
kranti

Un autre problème que j'ai provoqué cette erreur dans un projet Gradle est le paramètre sourceCompatibility dans le fichier build.gradle. Cela doit également correspondre à la valeur que vous prévoyez avoir besoin. La valeur par défaut que j'ai vu utiliser par IntelliJ lors de la création d'un nouveau projet Gradle est 1.5. Si vous utilisez lambdas, par exemple, la construction échouera.

1
melston