29

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

在此处输入图像描述

4

5 回答 5

58

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

转到Settings- Build, Execution, Deployment- Compiler-Java compiler并将模块目标字节码版本设置为 11

于 2018-09-26T07:02:57.057 回答
15

您应该检查以下事项:

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

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

     <properties>
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
     </properties>

或者

     <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>

如果您的pom.xml源或目标级别错误,您可能需要执行右键单击 | 马文 | 更改后重新导入pom.xml。如果你使用 Gradle,你应该检查你是否有类似的配置。

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

在 IntelliJ IDEA 2018.2.4 中使用 Maven 3.5.4 测试

于 2018-09-26T22:50:02.333 回答
9

您可以使用 JDK 11 进行编译,但如果您针对较旧版本的 java 进行编译,则找不到该方法。

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

不使用项目语言级别 10: 错误的项目语言级别

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

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

于 2018-09-26T06:16:03.670 回答
4

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

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

在我sourceCompatibiltytargetCompatibilitybuild.gradle 中未设置的地方,gradle 守护程序(从 Idea 开始)正在运行并使用 JDK 8 进行编译。这些属性动态设置为 8(或 1.8)。

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

在此处输入图像描述

于 2019-09-21T11:19:28.347 回答
1

就我而言,它甚至没有在项目语言级别显示 11。所以我不得不像下面的截图一样选择 X

在此处输入图像描述

于 2019-03-28T22:53:25.223 回答