Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

intellij feature (...) not supported at this language level. I can't compile

IntelliJ is showing me this error

I just built my new computer and none of my java stuff is working... My regular Intellij was working when I first tried it, but my android studio would't install because it couldn't find the path to the jdk. Here is the question that I asked about that. Since that wasn't working, I had to reinstall java multiple times, and now my IntelliJ isn't working. Here is a picture of the error (I am getting an error that is telling me the for-each loops aren't supported at this language level).

I have tried to install the JDK on my D: drive and that didn't work. I am currently trying to use java 1.8u71 (have tried u65 and 1.7u47) except none of those have worked.

like image 944
Seth G. Avatar asked Jan 28 '16 02:01

Seth G.


People also ask

How do I change the language level in IntelliJ?

Module language levelFrom the main menu, select File | Project Structure Ctrl+Alt+Shift+S . Under Project Settings, select Modules | Sources. From the Language level list, select the necessary option. To use the project language level, select Project default.

What is project language level in IntelliJ?

Your Project language level will restrict what inspections IntelliJ IDEA applies to your code and determine which compiler is used to turn your Java code into bytecode. You can override the compiler settings as I showed above if you don't want to compile your code with the Project Language Level.

How do I upgrade the module SDK in project settings to 11 or higher?

To configure SDKs at the global (IDE) level Open the Project Structure dialog (e.g. Ctrl+Shift+Alt+S). In the left-hand pane, under Platform Settings, click SDKs. To add a new SDK, click add and select the desired SDK type. In the dialog that opens, select the SDK home directory and click OK.


3 Answers

IntelliJ is showing me this error

are not supported at this language level

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.

project structure

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.

like image 145
activedecay Avatar answered Oct 10 '22 05:10

activedecay


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.

Screenshot

like image 28
ramtech Avatar answered Oct 10 '22 04:10

ramtech


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!

like image 7
HankCa Avatar answered Oct 10 '22 04:10

HankCa