错误:java:错误:无效的源发布:13将JDK12与IntelliJ一起使用

时间:2019-01-12 02:47:21

标签: java intellij-idea java-12 preview-feature

我正在尝试使用JDK-12 ea构建一个项目。 尝试执行示例类时:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int value = scanner.nextInt();
    // After JEP-325
    switch (value) {
        case 1 ->System.out.println("one");
        case 2 ->System.out.println("two");
        default ->System.out.println("many");
    }
} 

IDE抛出读取错误

  

错误:java:错误:无效的源发行版:13

相关项目配置屏幕:

enter image description here

模块设置

enter image description here

SDK

enter image description here

enter image description here

编译器设置

enter image description here 关于IDE:

IntelliJ IDEA 2018.3.3 (Community Edition)
Build #IC-183.5153.38, built on January 9, 2019
JRE: 1.8.0_152-release-1343-b26 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.6

尝试将语言级别切换回12,没有实验性功能,但最终以

结束

enter image description here

我记得最近成功使用了实验性功能(不确定确切的IntelliJ版本)。除了此以外,我还需要配置一些更改吗?

4 个答案:

答案 0 :(得分:8)

正确的方式™

最早支持switch表达式的IntelliJ版本是2019.1版本,该版本于2019年3月27日发布。您可以在此处获取它:https://www.jetbrains.com/idea/download。当然,您还需要JDK 12,并将其设置为项目SDK。

然后您可以将语言级别设置为:

12 (Preview) - Switch expressions

有了它,一切都会正常工作。

如果没有,则可能要检查您是否已经拥有;

  • 将项目语言级别以及模块语言级别设置为“ 12(预览)”
  • 在应用程序的运行配置中将执行JRE设置为12(或默认值,这是项目SDK)。
  • 在“设置”->“构建,执行,部署” /编译器/ Java编译器中设置正确的字节码版本。 (将此字段保留为空以匹配语言级别)

手动配置--enable-preview(无智能提示)

将我的评论变成答案。您可以通过以下步骤将--enable-preview标志添加到VM:

运行-> 编辑配置...

然后从左侧的树菜单中选择您的主类,并将--enable-preview粘贴到“ VM options”框中。

enter image description here

您可以通过以下步骤对编译器执行相同操作:

文件-> 设置...

然后在构建,执行,部署-> 编译器-> Java编译器下的树菜单中,您可以放置​​--enable-preview在“其他命令行参数”框中:

enter image description here

请注意,执行此操作后,Intellisense仍然可能无法正常工作。我仍然在->下看到红色的波浪线,并显示错误消息“意外令牌”。但是,当我单击运行按钮时,该类将编译并运行正常。

答案 1 :(得分:5)

仅作记录。我遇到类似的错误,但使用Java 14:

Error:java: error: invalid source release: 14

对我来说,解决问题的方法是在IDE的每个位置上查找被提及的另一个Java版本,而不是第14个版本。

我必须更改的地方是:

文件->项目结构->项目设置

文件->项目结构->模块设置->选项卡:源:语言级别。

文件->项目结构->模块设置->选项卡:依赖关系:模块SDK。

文件->设置->编译器-> Java编译器->目标字节码版本。

答案 2 :(得分:2)

在IDEA v2018.3.2中,预览语言级别在命令行中添加了-enable-preview 参数。在v2018.3.3中,没有12个 Preview 级别,因此必须按照您在注释中正确提及的方式手动添加参数。 实验功能不添加任何编译参数。

答案 3 :(得分:0)

假设您面临一个 SpringBoot 项目的问题,该项目具有 pom.xml 中提到的依赖项(Maven 依赖项)。执行以下操作。

  1. 使用 cmd 或带有命令的终端检查您机器的 jdk 版本:java -version。
  2. 在你的 pom.xml 中,更新 java 版本

保存更改,一切顺利。