无法在IntelliJ中使用jdk 11编译,找不到符号

sta*_*per 10 java intellij-idea java-11

我设置了JDK 11,它编译直到我使用isBlank()String 的Java 11的新方法,当我使用该方法编译时出现此错误,我尝试清理JDK安装,从IntelliJ清除缓存,重建但没有任何帮助.错误是:

在此输入图像描述

cac*_*co3 14

尝试将编译器目标字节码版本设置为11。

Settings- Build, Execution, Deployment- Compiler- Java compiler并设置目标字节代码的版本你的模块 11

  • 很好的补充。我已将这些设置的屏幕快照添加到我的答案中,以使其更加完整:-) (2认同)

Ros*_*sny 12

你应该检查以下事项:

  1. 您将JDK11定义为SDK之一: 在此输入图像描述
  2. 您项目的默认SDK是JDK11,您的项目默认语言级别为11: 在此输入图像描述
  3. 您的模块语言级别也是11. 在此输入图像描述

如果您使用Maven,请检查您的编译器插件"source"和"target"属性pom.xml是否为11. pom.xml在这种情况下,您的模块语言级别配置是从该配置导入的

     <properties>
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
     </properties>
Run Code Online (Sandbox Code Playgroud)

要么

     <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>
Run Code Online (Sandbox Code Playgroud)

如果您的pom.xml源或目标级别错误,您可能需要执行右键单击| Maven | 改变之后重新进口pom.xml.如果您使用Gradle,则应检查您是否具有类似的配置.

  1. 您的模块SDK是Project JDK11或JDK11 在此输入图像描述 在此输入图像描述

在IntelliJ IDEA 2018.2.4中使用Maven 3.5.4进行测试


bat*_*ode 6

我有类似的问题。找不到Java 11 功能的符号。尽管一切都已经设置为 11 点了。

解决方案是在我的Idea设置中将Gradle JVM设置为JDK 8。(因为我后来添加了JDK 11)

当我的 build.gradle 中未设置sourceCompatibiltytargetCompatibility,gradle 守护进程(从 Idea 启动)正在使用 JDK 8 运行和编译。这些属性动态设置为 8(或 1.8)。

我的解决方案是告诉 Idea 将 Gradle 的 JVM 设置为 11:

在此输入图像描述


Pim*_*oek 5

您可以使用JDK 11进行编译,但是如果针对较旧版本的Java进行编译,它将无法找到该方法。

转到File > Project Structure -> Project并检查项目语言级别,如下图的箭头所示:

无法使用项目语言级别10: 错误的项目语言水平

使用项目语言级别11可以正常工作: 工作项目语言水平

请注意,我具有以下Java编译器设置(使用IntelliJ 2018.3的新项目的默认设置):项目字节码版本与语言级别相同! Java编译器设置