intellij feature (...) not supported at this language level. I can't compile
IntelliJ is showing me this error
Matching the SDK/JDK with Project language level
To activate Java language features in the editor, you need to change your module's Project Structure or Module Settings to ensure your Project SDK matches the Project language level.
Project SDK (JDK) Java 1.5 matches project language level 5 ...
Java 1.6 matches language level 6 ...
Java 1.7 matches language level 7, and so on.
Example
Depending on your IntelliJ version, hit F4 or Ctrl + Alt + Shift - S on your module in the Project pane, or hit Ctrl + Shift - A and type either "Project Structure" or "Module Settings" to open the Project Structure dialog.
Under Project Settings section, click on the first item in the list, Project.
In the screenshot below, the Project SDK 1.8 (java version '1.8.0_72')
matches the selected language level SDK Default (8 - Lambdas, type annotations etc.)
because Java 1.8 matches SDK level 8. This activates the Java 8 language features for use in the editor.
If you don't have the JDK set up under Project SDK
that is a different problem. Solve that one first by clicking New
and adding a JDK.
When I had multiple independent modules in the project, I had to do below setting in addition to @activedecay's answer:
Under Project Settings
, click on Modules
. Select specific module. Select appropriate Language Level
.
I had this same problem and none of the solutions I have found worked.
I was using Maven projects and so decided to try running a maven install
. It too said:
[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)
So I added the properties to the Maven build pom.xml
file:
<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>
And refreshed the Maven project in IntelliJ. It worked!