无法解决IntelliJ上与项目语言级别有关的源错误

时间:2018-11-07 21:41:49

标签: java intellij-idea javac

尝试在Mac上的IntelliJ上构建项目时遇到此类错误。

Error:(12, 39) java: diamond operator is not supported in -source 1.5
  (use -source 7 or higher to enable diamond operator)

Error:(122, 48) java: method references are not supported in -source 1.5
  (use -source 8 or higher to enable method references)

Error:(124, 51) java: lambda expressions are not supported in -source 1.5
  (use -source 8 or higher to enable lambda expressions)

在此站点上查看其他答案,这与项目语言级别太低有关。但是,我的设置如下:

Screenshot of Project Settings

似乎我选择了正确的选项,但仍然遇到相同的错误。我该如何解决这些问题。

如果使用的是JDK 11.0.1,则这是日志的第一部分:

Information:java: JPS build failed to load optimized file manager for javac:
java.lang.NoClassDefFoundError: com/sun/tools/javac/util/DefaultFileManager
java.lang.NoClassDefFoundError: com/sun/tools/javac/file/JavacFileManager
Information:java: Errors occurred while compiling module 'notification-processor'
Information:javac 8 was used to compile java sources
Information:Module "notification-processor" was fully rebuilt due to project configuration/dependencies changes
Information:2018-11-07, 4:38 PM - Compilation completed with 19 errors and 4 warnings in 3 s 490 ms
Warning:java: class org.jetbrains.jps.javac.ast.ExternalRefCollectorCompilerToolExtension : com/sun/source/util/TaskListener
Warning:java: source value 1.5 is obsolete and will be removed in a future release
Warning:java: target value 1.5 is obsolete and will be removed in a future release
Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.

如果使用JDK 8,这是日志的第一部分:

Information:java: Errors occurred while compiling module 'notification-processor'
Information:javac 1.8.0_191 was used to compile java sources
Information:Module "notification-processor" was fully rebuilt due to project configuration/dependencies changes
Information:2018-11-07, 4:39 PM - Compilation completed with 19 errors and 3 warnings in 2 s 858 ms
Warning:java: source value 1.5 is obsolete and will be removed in a future release
Warning:java: target value 1.5 is obsolete and will be removed in a future release
Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.

1 个答案:

答案 0 :(得分:3)

请确保您未在​​模块设置中覆盖语言级别:

enter image description here

和编译器设置

enter image description here