intellij的想法-错误:java:无效的源版本1.9


129

我正在尝试运行我的JSQL解析器类,但是 Error: java: invalid source release 1.9

我试图遵循这个答案。我更改了文件>构建,执行,部署> Java编译器>项目字节码版本:1.8。但是,我无法将模块语言级别和项目语言级别更改为1.8,因为没有选择。我仍然在下面收到相同的错误。

错误 在此处输入图片说明

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();
        }
    }
}

什么版本的intellij?
soorapadman

@soorapadman intellij idea 2017.2.2
Alex

似乎应该可以工作。您正在使用Maven项目吗?
soorapadman

但是,我无法将模块语言级别和项目语言级别更改为1.8,因为没有选择。为什么呢?尝试这样做会遇到什么错误?1.9似乎也是Java版本。您在机器/智能机上配置了Java-9吗?
纳曼

Answers:


324

选择项目,然后选择文件> ProjectStructure> ProjectSettings>模块->源您可能已将语言级别设置为9:

屏幕截图

只需将其更改为8(或您需要的任何值),就可以开始了。

另外,请在“项目设置”>“项目”下检查与上述语言级别相同的设置

在此处输入图片说明


1
哦,最后我知道了项目语言水平的含义,谢谢
Daniel Dai

1
此外,在以上的图像,不要忘记去Modules部分
约翰·彼得斯

1
更好地更改pom.xml <java.version> 1.8 </java.version>那样,否则,当重新导入intellij时,它可能会重置配置
Rakesh Yembaram,

21

有时由于项目字节码的版本不正确而出现问题。

因此,请进行验证:文件->设置->构建,执行,部署->编译器-> Java编译器->项目字节码版本,并将其值设置为8

例


1
在“项目设置”->“模块”->“语言级别”的顶部,这是我的解决方案
Kemal Atik

1
这是对公认的答案的很好的补充答案。
道尔顿



3

使用Maven项目时。

检查pom.xml文件

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

如果您的计算机中安装了jdk 8,请将java.version属性从更改98


2

我刚遇到类似的问题。该项目已使用Java 9打开,但是即使将所有模块和项目都设置为1.8,我仍然会收到错误消息。

我需要强制Gradle刷新项目,然后一切按预期运行。


1

或者通过项目设置:

  • 项目设定
  • 项目
  • 项目语言水平(根据您的需要设置)

根据构建的设置方式,这可能是可行的方法。


1

Project SDK的Project Structure将SDK修改为11或更高版本,在Project语言级别中:修改为11-lambda参数的局部变量语法


0

对于任何尝试解决DeanM解决方案但无济于事的人,还有其他值得检查的地方,这是您为项目配置的JDK版本。我要说的是,如果您为项目配置了JDK 8u191(例如),但是将语言级别设置为高于8的语言,则会出现此错误。

在这种情况下,最好询问负责项目的人,最好使用JDK的哪个版本来编译源代码。


0

在选择项目后,在IntellijIdea中我也遇到了同样的问题,然后选择文件> ProjectStructure> ProjectSettings>模块->源,该选项显示-语言级别设置为9:

因此,我只是将其更改为8。仍然没有解决我的问题。

主要问题与pom.xml有关。我重新导入了pom.xml文件,问题得到解决。

因此,无论何时更改pom.xml文件,IDEA都需要更新项目结构。例如,如果您在其中添加了更多依赖关系,IDEA需要将它们添加为项目库。

在“设置>构建,执行,部署>构建工具> Maven>导入”中,可以选择“自动导入Maven项目”。更改pom.xml时,它将自动调用“重新导入”操作。

在此处输入图片说明


0

Gradle 我遇到了同样的问题,更改早期解决方案中提供的所有设置都没有区别。然后我去了build.gradle并找到了这一行并删除了它。

sourceCompatibility = '11'

而且有效!:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.