我昨天在进行Flume HbaseSink源码修改的时候,发现了一个报错,它是提醒jdk.tools 1.8的缺失,missing了。我就上网查找怎么加入jdk.tools文件,这很容易一下子就找到了,而且看得出这应该是很多人都遇到过,并且很成熟的解决方法。
方法就是在pom.xml文件中的依赖里添加。
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
看起来挺简单的,但是一加进去就开始报错,说是tool.jar文件unable to be found ,找不到了,这文件不是missing就是unable to be found ,那我就去{JAVA_HOME}/lib/目录下找,果然找不到。
想了想,我的jdk不应该啊,我正常安装,一步一步不应该出错导致文件丢失啊。后来就去网上查,原来jdk 9之后的tools.jar 和 dt.jar 文件被移除了,已经不用了。
我一想那怎么办,那岂不是jdk.tools安装不了了,毕竟我是jdk 11啊,怎么办这项目咋进行下去呢。赶紧换jdk吧,从官网找了jdk 8 ,下载安装配置。过程中发现jdk 11 只需要配置环境变量里的path 和JAVA_HOME,而jdk 9 还要配置 CLASSPATH其中配置的是lib的位置。配置完康康cmd 里的java -version 改过来了,就马上去打开eclipse ,想着继续修改源码,用tools.jar 把jdk.tools加上,结果直接打不开了。我的eclipse应该是最新版的,2021-12版本,显示该Java 8 不支持当前版本的eclipse,需要更高版本的。
好烦!!
又换回来,重新更换jdk,重新cmd java -version ,换回Java 11。
现在咋办,我左思右想,既然Java 8 有这个包,Java 11没这个包,我直接把Java 8的包复制到Java 11根目录下不就行了。复制过去之后,重启eclipse,然后clean一下,发现不报错了。
欧耶!!!
参考: