【问题标题】:How to make IntellijIDEA work with Java 12如何使 IntellijIDEA 与 Java 12 一起工作
【发布时间】:2019-11-22 11:40:54
【问题描述】:

我已经有一段时间没有使用Java了,今天我想重新开始使用它。所以我将我的 IDE (IntellijIDEA) 更新为 2019.1.3 version1,并下载了 Java 12。然后我继续卸载旧的 Java 8(并从装有 Windows 10 的 PC 中删除了带有 Java 8 SDK 的文件夹)。

然后我打开 IntellijIDEA,File -> Project Structure... -> Project -> Edit (Project SDK),并在那里选择了我刚刚安装 Java 12 的文件夹 (C:\Program Files\Java\jdk-12.0.1)。在我编辑 SDK 的同一窗口中,我将 Project language level 设置为 12 - no new language features

然后我去了File -> Project structure -> Modules -> Dependencies,我检查了Module SDK 切换到12 - no new language features。确实如此。

我点击了Apply,然后点击了OK

然后我转到File -> Settings... -> Build, Execution, Deployment -> Compiler -> Java Compiler 并将Project bytecode version 设置为12

我点击了Apply,然后点击了OK

我关闭了 IntellijIDEA 并关闭了我的电脑。然后我重新打开电脑,重新打开 IntellijIDEA,输入 var,IntellijIDEA 告诉我:Cannot resolve symbol 'var'

通过在 Google 上搜索,我发现很多人都遇到了我的问题,但他们都没有真正解决我的问题。这里有一些关于 Stack Overflow 的问题我已经阅读过:


1

IntelliJ IDEA 2019.1.3(社区版)

构建 #IC-191.7479.19,于 2019 年 5 月 28 日构建

JRE:1.8.0_202-release-1483-b58 amd64

JVM:JetBrains s.r.o 的 OpenJDK 64 位服务器虚拟机

视窗 10 10.0

【问题讨论】:

  • 你试过使缓存失效吗?
  • 我希望你不只是单独输入var,因为它需要是一个表达式才能编译。如果在 main 方法中输入 var test = "Hello World"; 会发生什么?
  • @JacobG。同样的问题。问题是 IDE 无法识别符号 var
  • @VinceEmigh 是的,正如this question 的第三条评论中所说的那样。
  • 我明白了。您将 JRE 列为1.8。在 Java 9+ 中,JRE 内置在 JDK 中。你确定你已经完全卸载了 Java 8 吗?

标签: java intellij-idea sdk


【解决方案1】:

如果你的IntelliJ版本支持,请在语言级别设置https://www.jetbrains.com/help/idea/project-page.html启用

【讨论】:

  • 啊,不好意思,没仔细看。它还在其中一个答案中说这是一个已知错误并将被修复(请参阅stackoverflow.com/a/50374241/4964685
  • @TituBG 说是2018.2版本解决了。我有 2019.1.3。此外,很多人都成功地使用了 Java 12 的特性。
  • @TituBG 我会试试的。顺便说一句,我认为问题不在于我使用的版本,因为其他用户提到他们正在使用 var 和其他 Java 12 功能。如果您的建议有效,我会通知您!
  • 哦。对不起,也没有注意到那部分。我刚刚在我的本地安装(Ubuntu 上的 2019.1)上尝试过它,它似乎工作正常。我想知道它是否与启动JDK有关?我记得它曾经引起过一段时间的问题。您是否安装了 IntelliJ 与捆绑的 JVM?
  • 我刚刚看到你的输出,@Lapo。看起来那是你的 Boot JDK,JB 捆绑的 1.8。这可能是您无法使用 var 的原因。按“Ctrl + Shift + A”并输入“Boot”并选择“Swith Boot JDK”选项并切换到较新的 JDK 并重试。如果不是这样,那我就没主意了。
【解决方案2】:

好的,问题是我很懒,而且在我看来,IntellijIDEA 显示的错误消息不是很准确。

我尝试构建项目,但在日志中我收到一条不同的错误消息:Java 'var' is not allowed here.

当然var不允许将类型推断为类字段,但是当我在方法中尝试时,一切都很好。

我的错,我想快速检查是否已切换到 Java 12,但我认为我不能在那个地方使用该构造。顺便说一句,IntellijIDEA 应该立即向我展示问题的“准确”原因。

我应该更加小心,非常感谢@TituBG、@JacobG。和@VinceEmigh 的时间!

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多