Nam*_*man 5 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");
}
}
Run Code Online (Sandbox Code Playgroud)
IDE抛出读取的错误
错误:java:错误:无效的源发行版:13
相关项目配置屏幕:
模块设定
开发包
编译器设定
Run Code Online (Sandbox Code Playgroud)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,没有实验性功能,但最终以
我记得最近成功使用了实验性功能(不确定确切的IntelliJ版本)。除此以外,我还需要配置一些更改吗?
支持开关表达式的IntelliJ最早版本是2019.1版本,该版本于2019年3月27日发布。您可以在此处获取它:https ://www.jetbrains.com/idea/download 。当然,您还需要JDK 12,并将其设置为项目SDK。
然后,您可以将语言级别设置为:
12 (Preview) - Switch expressions
Run Code Online (Sandbox Code Playgroud)
这样,一切都应该工作。
如果不是,您可能要检查您是否已经;
把我的评论变成答案。您可以通过以下方式将--enable-preview标志添加到VM:
运行 -> 编辑配置...
然后从左侧的树菜单中选择您的主类,然后粘贴--enable-preview在“ VM options”框中

您可以通过以下步骤对编译器执行相同的操作:
文件 -> 设置...
然后,在“ 构建,执行,部署 -> 编译器 -> Java编译器--enable-preview ” 下的树菜单中,可以在“其他命令行参数”框中输入:

请注意,执行此操作后,Intellisense仍然可能无法正常工作。我仍然在->s 下看到红色的波浪线,并显示错误消息“意外的令牌”。但是,当我单击运行按钮时,该类将编译并运行正常。
小智 9
只是为了记录。我有类似的错误,但使用 Java 14:
Error:java: error: invalid source release: 14
Run Code Online (Sandbox Code Playgroud)
对我来说解决这个问题的是寻找 IDE 的每一个地方,其中提到了另一个 Java 版本,而不是第 14 个版本。
我不得不改变的地方是:
文件 -> 项目结构 -> 项目设置
文件 -> 项目结构 -> 模块设置 -> 选项卡:来源:语言级别。
文件 -> 项目结构 -> 模块设置 -> 选项卡:依赖项:模块 SDK。
文件 -> 设置 -> 编译器 -> Java 编译器 -> 目标字节码版本。
| 归档时间: |
|
| 查看次数: |
4560 次 |
| 最近记录: |