【问题标题】:IntelliJ error - java: try-with-resources is not supported in -source 1.6 error. Even though in project settings 1.7 JDK is selectedIntelliJ 错误 - java:-source 1.6 错误中不支持 try-with-resources。即使在项目设置中选择了 1.7 JDK
【发布时间】:2013-06-10 15:35:18
【问题描述】:

在文件 -> 项目结构 -> SDKs 我有 1.7 jdk 但我仍然得到这个错误:

added.java:-source 1.6 不支持 try-with-resources (使用 -source 7 或更高版本来启用 try-with-resources)

我已经重启了IDE,但是没有用

【问题讨论】:

    标签: java intellij-idea


    【解决方案1】:

    必须单击“错误灯泡”图标(或 Alt+Enter)并选择启用加载多捕获的选项,尝试使用资源、菱形...然后重新加载并重新启动 IDE。

    【讨论】:

    • 这很奇怪,一旦你迁移到 JDK-7,你必须手动启用 try-with-resources 应该是自动的,这就是我在 eclipse 中观察到的。
    • 他可能在使用 1.7 编译器时将语言级别设置为 1.6 或更低。无需重新启动 IDE,只需更改该设置即可。
    • 谢谢,这真的很有帮助。
    • 我也必须手动执行此操作。更新项目结构设置是不够的。谢谢。
    • 它是正确的。模块级别设置为 5。更新到 Java 8 lambda... 它就像一个魅力。感谢您指出。
    【解决方案2】:

    较新的 JVM 允许您使用较低 JVM 版本的编译器版本来编译代码。例如,JDK 1.7 将允许您使用 1.5 编译器编译代码。

    在此处查看“交叉编译部分”http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html

    在 Intellij 中需要做的就是去 File -> Project Structure -> Project 并选择“Project SDK ”作为 1.7 和“项目语言级别”作为 7.0

    【讨论】:

      【解决方案3】:

      我在使用 IntelliJ 13 时遇到了同样的问题。您必须在“项目的常规设置”对话框中为整个项目或单个模块设置语言级别。完整答案请参见IntelliJ IDE gives error when using Try-Catch with Resources

      【讨论】:

        【解决方案4】:

        IntelliJ IDEA 允许基于项目以及基于模块设置语言级别。如果您在项目级别将语言级别设置为 Java 7 或更高,但仍然收到此错误消息,请右键单击模块,选择“打开模块设置”。确保模块的语言级别设置为“项目默认值”,或者如果出于某种原因,您想专门设置它,它应该至少是 Java 7。

        【讨论】:

          【解决方案5】:

          如果上述答案没有帮助,您是否在使用 Groovy?显然 Groovy 在当前版本中不支持 Java 的 try-with-resources。

          【讨论】:

          • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-05-15
          • 2021-03-07
          • 2014-06-29
          • 1970-01-01
          • 2018-04-15
          • 1970-01-01
          相关资源
          最近更新 更多