IDEA 判断 JDK 版本有误时排错指南

皮康龙发布

近期在用 JDK 11 写一个项目,经常遇到睡醒一觉发现项目不能正常编译的情况,报错诸如「不再支持源选项 5 请使用 6 或更高版本」、「Method references are allowed only at source level 1.8 or above」等等。每次都要慢慢排错很麻烦,故将排错流程总结于此,方便日后查看。

本文有可能会因为我踩了什么新坑而不定时更新。

可选操作(亲测没有影响,但许多教程提到这种做法):在 pom.xml 中添加以下两段代码中的任意一段。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>11</java.version>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>11.0</source>
                    <target>11.0</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

其他有用的操作:点击 File – Settings。

找到 Java Compiler,将 Project bytecode version 和 Target bytecode version 改为 11 后,点击 OK 保存。

点击 File – Project Structure。

将 Project 中的能改成 11 的都改成 11。

Modules 中的 Sources 和 Dependencies 同理。

正常到这里就应该可以正常编译运行了,如果还不行的话,可以检查项目下的 .settings/org.eclipse.jdt.core.prefs 文件。

org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.source=11

学到了的兄弟们把「👴杀了IDEA的🐴」打在公屏上。

分类: 未分类

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注