Alex
Alex

Reputation: 2509

intellij idea - Error: java: invalid source release 1.9

I'm trying to run my JSQL parser class, but I'm getting Error: java: invalid source release 1.9.

I tried to following this answer. I changed File> Build,Execution,Deployment> Java Compiler> Project bytecode version: 1.8. However, I can't change the Module language level and Project language level to 1.8 because there's not option for that. I still get the same error below.

Error enter image description here

Code

package cs4321.project2;

import java.io.FileReader;
import net.sf.jsqlparser.parser.CCJSqlParser;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.select.Select;

public class Parser {
    private static final String queriesFile = "resources/input/queries.sql";

    public static void main(String[] args) {
        try {
            CCJSqlParser parser = new CCJSqlParser(new FileReader(queriesFile));
            Statement statement;
            while ((statement = parser.Statement()) != null) {
                System.out.println("Read statement: " + statement);
                Select select = (Select) statement;
                System.out.println("Select body is " + select.getSelectBody());
            }
        } catch (Exception e) {
            System.err.println("Exception occurred during parsing");
            e.printStackTrace();
        }
    }
}

Upvotes: 204

Views: 298709

Answers (21)

Ibrahim Payak
Ibrahim Payak

Reputation: 11

Whatever version you wanted to use, add it's path in environment variable at top, it will resolve this issue.

Upvotes: 0

Ravi Parekh
Ravi Parekh

Reputation: 5622

Maven Projects - and Project Structure[imported as maven in IntelliJ]

Try - If any of below pom entries present - values should be same at java level

<java.version>16</java.version>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
  1. Project Structure -> Project language level
  2. Module -> Language level


GRADLE projects

Since we started working with GRADLE,

Build.gradle: - even below line didn't help

sourceCompatibility = '16'

I am getting this ERROR most of the time and Solution is Change Gradle JVM to XX

Preferences | Build, Execution, Deployment | Build Tools | Gradle -> JVM enter image description here

Upvotes: 44

y2k-shubham
y2k-shubham

Reputation: 11627

While setting Language level do note that various language levels are split across LTS Versions and Other Versions headers. I missed that and spent a while figuring why level 8 wasn't showing up in my dropdown

IntelliJ Language level dropdown

Ref: What is Project Language level in IntelliJ IDEA?

Upvotes: 0

Smars
Smars

Reputation: 1

May caused by mismatching configuration of your Maven as well as project Structure.

  1. Re-set your project configuration.

IntelliJ IDEA - File - Project Structure - Project Settings

Project: Project language level : please select one (e.g. 8 - Lambdas, type annotations etc.)

Modules: Language Level: please select one same as above. (e.g. 8 - Lambdas, type annotations etc.)

Apply the setting.

  1. Re-upgrade your Maven XML configuration.

confirm your pom.xml file whether contains the properties configure xml code as below or not.

please change the version to '8'.

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
  1. Re-load Maven Project by IDEA.

right click pom.xml -> maven -> Reload project.

Upvotes: 0

Boney
Boney

Reputation: 1790

Below process worked for me: File -> Project Structure -> Platform Settings -> SDKs -> (ADD JDK Required version either from disk or download it)

Upvotes: 0

MuhammetK
MuhammetK

Reputation: 265

After I changed everything mentioned in answer, it was still giving me same error. I had to change "Use complier" option from "Eclipse" to "Javac" and it solved the issue for me.

enter image description here

Upvotes: 1

Samad
Samad

Reputation: 13

I was able to overcome this issue only clearing/removing the VM configuration. But you should do all the following checks:

  1. Menu File/Project Structure/Project (select the SDK and the correct language level -- in may case 1.8.0_201 and "8 - Lambdas...")

  2. Menu File/Project Structure/Modules/Sources (on the right) - Select the same Language Level

  3. Menu File/Project Structure/Dependencies (also on the right) - Select the same Module SDK

  4. (If still does not work...) Menu Run/Edit configurations

enter image description here

I removed the lines from the configuration and all start running.

--module-path
${PATH_TO_FX}
--add-modules
javafx.controls,javafx.fxml

Upvotes: 0

Gayan Weerakutti
Gayan Weerakutti

Reputation: 13821

intellij-invalid-source

You should to set the JAVA SDK and appropriate language level in the project settings. Click to enlarge.

Upvotes: 21

Emmanuel Njorodongo
Emmanuel Njorodongo

Reputation: 1302

File > Project Structure > Project > Project SDK > Choose Version File > Project Structure > Project > Project Language Level > Choose Version File > Project Structure > Modules > Sources Tab > Language Level > Choose Level File > Project Structure > Modules > Dependencies Tab > Module SDK > Choose Version

In Pom.xml under properties change to your version

<properties>
    <java.version>16</java.version>
</properties>

Right Click Pom then Mavem then Reload Project

Upvotes: 0

shubham
shubham

Reputation: 85

Just additional note:

when you creating a new project from start.spring.io make sure you select your JDK version theirs by default is set to JDK 11, later it will cause the above issue.

Upvotes: 0

Ojonugwa Jude Ochalifu
Ojonugwa Jude Ochalifu

Reputation: 27255

I was having this issue while running a SpringBoot project (Maven)

In my POM file I changed the java version from 11 to 8 and it worked:

<properties>
    <java.version>8</java.version> //The default was 11
</properties>

Make sure to Load maven changes else the change won't reflect.

Upvotes: 4

Lucian L.
Lucian L.

Reputation: 43

In Project Structure in Project SDK: modify SDK to 11 or higher and in Project language level: modify to 11 - Local variable syntax for lambda parameters

Upvotes: 1

likejudo
likejudo

Reputation: 3735

Gradle I had the same issue and changing all the settings given in the earlier solutions made no difference. Than I went to the build.gradle and found this line and deleted it.

sourceCompatibility = '11'

and it worked! :)

Upvotes: 4

Rogol
Rogol

Reputation: 742

Sometimes the problem occurs because of the incorrect version of the project bytecode.

So verify it : File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler -> Project bytecode version and set its value to 8

Example

Upvotes: 62

Edward
Edward

Reputation: 355

I've just had a similar issue. The project had opened using Java 9 but even after all the modules and project were set back to 1.8, I was still getting the error.

I needed to force Gradle to refresh the project and then everything ran as expected.

Upvotes: 3

abitcode
abitcode

Reputation: 1582

When using maven project.

check pom.xml file

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>9</java.version>
</properties>

if you have jdk 8 installed in your machine, change java.version property from 9 to 8

Upvotes: 4

amitsahu86
amitsahu86

Reputation: 29

I also had the same problem in IntellijIdea, after selecting the project, then File > ProjectStructure > ProjectSettings > Modules -> sources the option was showing - the Language Level set at 9:

So, I Just change it to 8. Still my issue didn't got resolve.

The main issue was with pom.xml. I reimported the pom.xml file and my issue got resolved.

So, whenever you changed the pom.xml file, IDEA needs to update the project structure. For example if you've added there some more dependencies, IDEA needs to add them as project libraries.

In "Settings > Build, Execution, Deployment > Build Tools > Maven > Importing" you can choose "Import Maven projects automatically". This will automatically invoke "Reimport" action when the pom.xml is changed.

enter image description here

Upvotes: 0

Tharkius
Tharkius

Reputation: 3536

For anyone struggling with this issue who tried DeanM's solution but to no avail, there's something else worth checking, which is the version of the JDK you have configured for your project. What I'm trying to say is that if you have configured JDK 8u191 (for example) for your project, but have the language level set to anything higher than 8, you're gonna get this error.

In this case, it's probably better to ask whoever's in charge of the project, which version of the JDK would be preferable to compile the sources.

Upvotes: 1

DeanM
DeanM

Reputation: 4803

Select the project, then File > ProjectStructure > ProjectSettings > Modules -> sources You probably have the Language Level set at 9:

screenshot

Just change it to 8 (or whatever you need) and you're set to go.

Also, check the same Language Level settings mentioned above, under Project Settings > Project

enter image description here

Upvotes: 443

felvhage
felvhage

Reputation: 1199

Alternatively via Project Settings:

  • Project Settings
  • Project
  • Project language Level (set to fit your needs)

Depending on how your build is set up, this may be the way to go.

Upvotes: 1

Dmitry Kaltovich
Dmitry Kaltovich

Reputation: 349

I have had the same problem. There is an answer:

  • 1.CTRL + ALT + SHIFT + S;
    1. Then go to "Modules";
    2. "Dependencies;
    3. Change "Module SDK".

Got it! Now u have Java 9!

Upvotes: 24

Related Questions