Java Can';t在IntelliJ中使用jdk 11编译,找不到符号
我设置了JDK 11,它会一直编译,直到我使用Java 11的新方法Java Can';t在IntelliJ中使用jdk 11编译,找不到符号,java,intellij-idea,java-11,Java,Intellij Idea,Java 11,我设置了JDK 11,它会一直编译,直到我使用Java 11的新方法isBlank(),当我使用该方法时,这个错误会在编译时出现,我尝试清理JDK安装,清理IntelliJ中的缓存,重建,但没有任何帮助。错误是: 您可以使用JDK 11进行编译,但如果您使用较旧版本的java进行编译,它将找不到该方法 进入File>Project Structure->Project,检查项目语言级别,如下图箭头所示: 不使用项目语言级别10: 使用项目语言11级工作良好: 请注意,我有以下Java编译器设
isBlank()
,当我使用该方法时,这个错误会在编译时出现,我尝试清理JDK安装,清理IntelliJ中的缓存,重建,但没有任何帮助。错误是:
您可以使用JDK 11进行编译,但如果您使用较旧版本的java进行编译,它将找不到该方法 进入
File>Project Structure->Project
,检查项目语言级别,如下图箭头所示:
不使用项目语言级别10:
使用项目语言11级工作良好:
请注意,我有以下Java编译器设置(使用IntelliJ 2018.3的新项目的默认设置):
项目字节码版本与语言级别相同!
尝试将编译器目标字节码版本设置为11
转到
设置-生成、执行、部署-编译器-Java编译器并将模块的目标字节码版本设置为11您应该检查以下事项:
您已经将JDK11定义为SDK之一:
项目的默认SDK为JDK11,项目的默认语言级别为11:
你的模块语言水平也是11李>
如果使用Maven,请检查pom.xml
中的编译器插件“source”和“target”属性是否为11。在这种情况下,您的模块语言级别配置将从pom.xml
配置导入
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
11
11
或
org.apache.maven.plugins
在我的案例中,使用IntelliJ IDEA 2018.2.4中的Maven 3.5.4进行测试,在项目语言级别上甚至没有显示11。所以我必须选择X,就像下面的截图一样
我也有类似的问题。找不到Java 11功能的GET符号。虽然一切都设置为11
解决方案是,在我的想法设置中,gradlejvm被设置为jdk8。(因为我后来添加了JDK 11)
正如sourcecompatibility
和targetCompatibility
中未在我的build.gradle中设置的那样,gradle守护进程(从Idea开始)正在运行并使用JDK 8编译。这些属性动态设置为8(或1.8)
告诉我将Gradle的JVM设置为11是我的解决方案:
问题中的图像显示使用了javac11
。如何推断项目级别设置不正确?向下投票。@nullpointer由于isBlank()在Java 11中是新出现的,没有将项目语言级别设置为11很可能是问题的原因。@nullpointer我添加了屏幕截图以更清楚地演示其效果。它显示的错误与OP遇到的错误相同。该选项在我的IDE中是beta版,因为2018.3版本尚未发布,它应该在官方更新发布时修复错误,但目前caco3解决方案工作正常。是的,我使用的是beta版,但是,项目语言级别的选项已经在几个稳定版本中可用,您确切指的是什么选项?请编辑问题并完全共享图像,而不是链接。请务必告诉我们,您使用的IntelliJ版本是什么?@starsuper您是否设法解决了此问题?如果是,如何解决?我也有同样的问题,并且已经努力寻找解决方案三天了。到目前为止,这里没有一个答案能够成功构建。很好的补充。我已经在我的答案中添加了这些设置的屏幕截图,以使其更加完整:-)这是我从1.8->11更新项目后得到的。当然,只有一个模块受到影响!“主”设置和每个模块设置中的所有内容都设置为项目默认值(为11),并从mvn cli正常运行-不知道intellij中是如何失去同步的。它工作正常。谢谢@caco3。您需要将11编译器版本应用于项目内的所有模块。这对IDEA 2020有效,对于较旧的想法,其他答案也有帮助。谢谢,这很有用。请注意,OP编译错误显示在默认构建选项卡(使用IntelliJ编译)中,而不是使用maven。很好的补充,但这可能适用于其他使用maven的有类似问题的人。即使您的模块是基于maven的,您仍然可以尝试由IntelliJ IDEA自己构建或重建您的项目。我的也一样。。您知道如何获得Java11的项目语言级别了吗?最后是一个可行的解决方案。关键是改变“GradleJVM”。其他解决方案都不起作用。这个问题已经存在很长时间了。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>