Intellij idea Language level和Java Compiler版本自动变化问题

概述
最近将Intellij Idea的版本升级之后,在对maven项目进行编译或打包时,经常出现一大堆的错误,错误的提示基本上都是jdk版本不正确导致的语法错误。刚开始没太留意,以为是默认配置没有修改。于是把Settings中的Java Compiler和Project Settings中的Language level都改为自己使用的版本,比如jdk1.7,问题暂时得到解决。可是下次编译或打包又会偶然出现同样的问题(后来发现之所以偶然出现是因为对pom文件改动才会出现)。




原因分析
经排查,原来是这个问题的根源在于maven的pom.xml文件中未配置jdk版本导致。当未配置jdk版本时,一旦pom文件发生变化,Java Compiler和Language level会自动变回到原来的默认1.5版本。




解决方案
在pom文件中添加maven-compiler-plugin插件,并指定jdk使用的jdk版本即可解决上面问题。maven-compiler-plugin的配置同时对Java compiler和Language level同时生效。
配置内容如下:

方法一
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>


方法二
<properties>
   <project>UTF-8</project>          
   <project>UTF-8</project>
   <java>1.8</java>
   <maven>1.8</maven>
   <maven>1.8</maven>
   <encoding>UTF-8</encoding>
</properties>
### 如何在 IntelliJ IDEA 中配置切换不同的 Java 版本 #### 1. 修改项目的 SDK 设置 在 IntelliJ IDEA 的设置窗口中,可以通过调整 **Project Structure** 来更改整个项目的 JDK 版本。具体操作如下: - 打开菜单栏中的 `File` -> `Project Structure...` - 在弹出的对话框左侧选择 `Project`,右侧可以看到当前使用的 Project SDK。 - 如果目标版本未列出,则点击下拉列表旁边的 `New...` 或者 `Add...` 按钮添加新的 JDK 路径[^1]。 #### 2. 更改模块级别的 JDK 配置 对于多模块项目而言,可能需要单独为某些模块指定特定的 JDK 版本: - 同样进入 `File` -> `Project Structure...` - 切换到左边选项卡里的 `Modules` - 对应于每一个 Module,在其各自的 Properties 下重新定义所用的 SDK 及源码兼容级别 (Language level)[^2]。 #### 3. 更新编译器的语言等级 即使全局或者模块级已经设置了合适的 JDK ,还需要确认编译参数里也匹配相应的标准: - 前往 `File` -> `Settings`(Windows/Linux) / `IntelliJ IDEA` -> `Preferences...(macOS)` - 寻找路径至 `Build, Execution, Deployment` -> `Compiler` -> `Java Compiler` - 这里可以针对不同 module 设定独立的语言特性支持程度[^4]。 #### 4. 测试环境变更效果 完成上述修改之后,建议执行以下步骤验证改动是否生效: - 关闭并重启 IDE 应用程序以应用全部变化; - 创建一个新的测试类文件运行简单打印语句如 System.out.println(System.getProperty("java.version")); - 使用终端命令检查实际加载情况:通过右键 project root folder-> Open In Terminal 输入 java -version javac -version 确认一致性[^3]。 ```bash # Example of checking installed versions from terminal within the IDE. $ java -version $ javac -version ``` 如果以上各处均反映出了预期的目标 jdk version,则说明成功完成了切换过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值