我正在尝试运行我的JSQL解析器类,但我得到了Error: java: invalid source release 1.9
。
我试图关注this answer。我改变了文件>建立,执行,部署和GT; 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();
}
}
}
答案 0 :(得分:220)
选择项目,然后选择文件>项目结构> ProjectSettings>模块 - >来源 您可能将语言级别设置为9:
只需将其更改为8(或您需要的任何内容),然后就可以了。
另外,请检查上面提到的相同语言级别设置,项目设置>项目
答案 1 :(得分:12)
我遇到了同样的问题。有一个答案:
知道了! 现在你有了Java 9!
答案 2 :(得分:5)
答案 3 :(得分:3)
在运行SpringBoot项目(Maven)时遇到此问题
在我的POM文件中,我将Java版本从11更改为8,并且可以正常工作:
<properties>
<java.version>8</java.version> //The default was 11
</properties>
请确保Load maven changes
,否则更改不会反映出来。
答案 4 :(得分:1)
我刚刚遇到了类似的问题。该项目已使用Java 9打开,但是即使将所有模块和项目都设置为1.8,我仍然会收到错误消息。
我需要强迫Gradle刷新项目,然后一切按预期运行。
答案 5 :(得分:1)
在项目SDK 中的项目结构中:将SDK修改为11或更高;在项目语言级别中:修改为11-本地变量语法用于lambda参数
答案 6 :(得分:0)
对于那些尝试解决DeanM解决方案但无济于事的人,还有其他值得检查的地方,这是您为项目配置的JDK版本。我要说的是,如果您为项目配置了JDK 8u191(例如),但是将语言级别设置为高于8的语言,则会出现此错误。
在这种情况下,最好询问谁负责该项目,最好使用JDK的哪个版本来编译源代码。
答案 7 :(得分:0)
在IntellijIdea中,我也遇到了同样的问题,选择项目后,然后显示“文件”>“ ProjectStructure”>“ ProjectSettings”>“模块”->“源”,该选项显示-语言级别设置为9:
所以,我只是将其更改为8。仍然没有解决我的问题。
主要问题与pom.xml有关。我重新导入了pom.xml文件,问题解决了。
因此,无论何时更改pom.xml文件,IDEA都需要更新项目结构。例如,如果您在其中添加了更多依赖关系,IDEA需要将它们添加为项目库。
在“设置>构建,执行,部署>构建工具> Maven>导入”中,可以选择“自动导入Maven项目”。更改pom.xml时,它将自动调用“重新导入”操作。
答案 8 :(得分:0)
使用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
属性从9
更改为8
答案 9 :(得分:0)
答案 10 :(得分:0)
成绩 我遇到了同样的问题,更改早期解决方案中提供的所有设置都没有区别。然后我去了build.gradle并找到了这行并将其删除。
sourceCompatibility = '11'
成功了! :)
答案 11 :(得分:0)
仅需补充说明:
当您从start.spring.io创建一个新项目时,请确保选择您的JDK版本,默认情况下将其版本设置为JDK 11,稍后将导致上述问题。
答案 12 :(得分:0)
文件 > 项目结构 > 项目 > 项目 SDK > 选择版本 文件 > 项目结构 > 项目 > 项目语言级别 > 选择版本 文件 > 项目结构 > 模块 > 源选项卡 > 语言级别 > 选择级别 文件 > 项目结构 > 模块 > 依赖项选项卡 > 模块 SDK > 选择版本
<块引用> <块引用> <块引用>在 Pom.xml 下的属性更改为您的版本
template<auto FUNC, typename T, typename ... Params>
static auto wrapper(void* handle, Params ... args)
<块引用>
<块引用>
<块引用>
右键单击 Pom 然后 Maven 然后重新加载项目