最近用Maven编译项目的时候,出现“Could not find artifact com.sun:tools:jar:11.0.2 at specified path”错误,当然你的电脑可能是别的java版本号“Could not find artifact com.sun:tools:jar:xxx at specified path”,xxx为具体的jdk版本号。据我所查,java 9以后就已经取消生成tools.jar 和 dt.jar ,取而代之以某种特殊的形式存在,此处不深究,重点看下解决方案。
看报错就是缺少tools.jar 这个jar 包。所以解决方案就是安装java 8 ,这个版本的lib里有tools.jar 和 dt.jar,然后启用java 8重新编译。我的电脑目前安装有两个版本的java:openjdk11.0.2 以及jdk12.0.2,目前启用的是openjdk11.0.2。这两个版本的java安装路径下lib里都没有tools.jar 和 dt.jar。多个版本的JDK可以共存的,想用哪个版本的都可以随时切换,只需一个脚本。
1.下载java 8 。下载链接为 https://www.oracle.com/java/technologies/downloads/ 需要注册账号才能下载
2.安装java 8. 选择jdk安装目录比如我的是F:\Java\java8。此处需注意后面还要求选择jre安装目录,新建目录F:\Java\java8\jre1.8.0_351 ,选择该目录为JRE的安装路径。据说jdk的目录和jre的目录要不一样,否则会覆盖lib下面的tools.jar 和 dt.jar.(没有验证,安装位置不同就好)
3.设置jdk和jre系统环境变量.有的就编辑,没有就新建。根据自己的安装路径灵活设置
新建或编辑变量名 PATH
变量值 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
新建或编辑变量名 JAVA_HOME
变量值 F:\Java\java8
新建或编辑变量名 CLASSPATH
变量值 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
4.在jdk安装目录下新建一个脚本,保存为CJavaBat.bat,以动态选择使用哪个版本的jdk.将下面的路径灵活替换成你自己的路径
@echo off
@echo ------------------------------------------------
@echo enter the version you want to change:
@echo options version
@echo 8 JDK8
@echo 11 JDK11
@echo 18 JDK18
@echo ------------------------------------------------
set /P choose=please enter your choice:
IF "%choose%" EQU "11" (
setx "JAVA_HOME" "F:\Java\openjdk11\jdk-11.0.2" /m
echo "JAVA_HOME" has been modified F:\Java\openjdk11\jdk-11.0.2
) ELSE IF "%choose%" EQU "18" (
setx "JAVA_HOME" "F:\Java\jdk1.8" /m
echo "JAVA_HOME" has been modified F:\Java\jdk1.8
)ELSE IF "%choose%" EQU "8" (
setx "JAVA_HOME" "F:\Java\java8" /m
echo "JAVA_HOME" has been modified F:\Java\java8
)
pause
5.生成CJavaBat.bat快捷方式
右击CJavaBat.bat文件,发送到->桌面快捷方式,重命名为CJavaBat
到桌面双击该快捷方式运行,输入你想运行的java版本,此处输入8 回车,等待系统显示已经将java 版本切换到 java8
6.退出然后重新进入cmd, 用maven重新编译,即可编译成功!
制造业是重中之重,仙葩科技提供ERP MES CRM PLM WMS等企业全数字化产品套件,帮助企业降本增效!提高企业毛利 和整体管理经营生成效率,从而提高竞争力!
汇率到7.3,外贸行业迎来黄金时代。仙葩科技提供外贸一体化解决方案,从生产管理进销存财务ERP到怎么找到客户(外贸对立网站网店商城+谷歌SEO),有了客户怎么管理客户(CRM强大邮件营销),以及Facebook的群控营销,大大提高营销效率!
仙葩科技提供点餐小程序 外卖小程序 酒店小程序 分销商城直播小程序 教育培训小程序 美容美发小程序 家政服务小程序 人工智能名片小程序等各行业小程序解决方案,多年APP小程序开发经验,值得信赖!