有时候,使用 Maven 构建项目时,你可能会遇到上述错误。 导致产生这一错误的原因是:项目声明(POM文件)使用的 JDK 版本和本地安装的版本不一致导致的,例如:目前还有大量的项目在使用 JDK 8,而假如你本地安装的是 JDK 17,就会有很大概率遇到该问题。解决该问题的方法是:在本地安装与程序相匹配的 JDK 版本,然后在使用 Maven 命令构建项目前,显式地配置的 JAVA_HOME,就像下面这样:
set JAVA_HOME="C:\Lib\Java\jdk-1.8.391"
mvn clean package
网上有的文章说需要同时显式地指定 compiler 插件的两个关键属性:
mvn clean package -Dmaven.compiler.fork=true -Dmaven.compiler.executable="C:\Lib\Java\jdk-1.8.391\bin\javac.exe"
测试表明,只要设置的 JAVA_HOME 即可,并不需要配置上述两个属性。
另外,补充一点:在当前阶段,大量JAVA 应用在使用 JDK 8 和 JDK 17+,不少老的 JAVA 程序并没有升级到 JDK 17+, 所以,建议本地最好同时安装这两个版本,然后根据本人情况,选择使用哪一个版本作为主JDK,从而设置 JAVA_HOME 环境变量。当需要使用到另一个版本时,就使用上面的方法,临时修改 JAVA_HOME 变量!