Maven构建编译错误求助:未结合-source 1.7设置bootstrap类路径
这个问题我之前处理过好几次,核心原因是你用JDK 8来编译要求兼容Java 7的代码,但没告诉编译器要用Java 7的核心类库,导致Maven的编译插件报错了。下面给你几个可行的解决办法:
方法一:直接在pom.xml中配置编译插件
修改项目的pom.xml,给maven-compiler-plugin补充完整的配置,明确指定Java版本和bootstrap类路径:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <!-- 替换成你本地Java 7 JDK的rt.jar路径,比如C:\Program Files\Java\jdk1.7.0_80\jre\lib\rt.jar --> <bootclasspath>${java.home}/../jre/lib/rt.jar</bootclasspath> <verbose>true</verbose> </configuration> </plugin> </plugins> </build>
注意:如果你的电脑上还没安装Java 7的JDK,得先去下载安装——bootstrap类路径必须指向Java 7的核心类库,不能用JDK 8的代替,否则兼容性检查就失去意义了。
方法二:通过Eclipse IDE配置调整
如果你习惯用Eclipse来管理项目,可以按以下步骤操作:
- 添加Java 7 JDK到Eclipse:
打开Window > Preferences > Java > Installed JREs,点击Add选择「Standard VM」,找到你本地Java 7 JDK的安装目录完成添加。 - 切换项目的JRE依赖:
右键项目 >Properties > Java Build Path > Libraries,把当前的「JRE System Library」替换成刚才添加的JavaSE-1.7环境。 - 配置Maven运行参数:
右键项目 >Run As > Maven Build...,在「Goals」栏填写clean compile,切换到「Arguments」标签,在「VM arguments」里添加:
记得把路径替换成你自己的Java 7 rt.jar位置。-Dmaven.compiler.source=1.7 -Dmaven.compiler.target=1.7 -Dmaven.compiler.bootclasspath=C:\Program Files\Java\jdk1.7.0_80\jre\lib\rt.jar
补充:为什么会出现这个错误?
当用高版本JDK(比如你的JDK 8)编译低版本兼容的代码时,Maven编译插件会强制要求设置bootclasspath——这是为了确保你编译出来的代码不会用到Java 7中不存在的类或方法,避免后续在Java 7环境运行时出现兼容性问题。如果没配置这个路径,插件就会抛出这个报错提醒你。
内容的提问来源于stack exchange,提问作者SeongHo Park
相关产品推荐
相关产品推荐

