JDK8环境下所有Maven项目构建均报aspectj插件依赖找不到错误如何解决?
问题根因
本次报错的核心原因如下:
- 你使用的
aspectj-maven-plugin:1.8依赖JDK自带的tools.jar包,该包从JDK9版本开始已被正式移除,在JDK9+环境下运行该插件必然触发找不到包的错误。 - 报错日志中的路径指向OpenJDK15的安装目录,说明Maven运行时实际调用的是JDK15,和你预期使用的JDK8不匹配,即使本地已安装JDK8,Maven也没有正确加载该版本。
解决方案
- 第一步:验证Maven当前使用的JDK版本
终端执行命令mvn -v,查看输出信息中的Java版本和路径,如果显示版本为15,即可确认是环境变量配置问题。 - 第二步:修正JAVA_HOME环境变量(适配macOS系统,你的报错路径符合brew安装JDK的特征)
- 执行命令
/usr/libexec/java_home -V,列出本地所有已安装的JDK版本,找到JDK1.8对应的版本号和路径。 - 编辑你当前使用的shell配置文件(通常为~/.zshrc 或 ~/.bash_profile),添加如下配置:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)- 执行
source ~/.zshrc(对应你修改的配置文件)使配置生效,重新执行mvn -v确认Java版本已切换为1.8。
- 执行命令
- 第三步:IDE运行场景额外校验
如果你在IDEA等IDE中执行Maven命令,还需要修改IDE的Maven运行时配置:找到「构建、执行、部署」-「构建工具」-「Maven」-「运行程序」,将JRE选项修改为JDK8即可。 - 兜底兼容方案
如果调整环境变量后仍然报错,可在pom文件的aspectj-maven-plugin的标签内显式指定tools.jar路径,添加内容如下: <toolsjar>${java.home}/../lib/tools.jar</toolsjar> - 额外排查点
如果以上操作都无效,检查本地Maven的setting.xml配置,是否存在全局profile强制指定了JDK15作为运行版本,删除对应配置即可。
内容的提问来源于stack exchange,提问作者Jonathan Hagen
相关产品推荐
相关产品推荐

