今天接手了一个使用 jdk11 的项目,而我之前做的项目一直是使用的 jdk8,从 git 拉下来之后想着问题不大,然后就开始下载 maven 依赖。
接着控制台就输出了这一行:Cannot resolve com.sun:tools:1.8.0
由于是第一次见到这个依赖,立马想到的就是进行全局搜索,看看这个依赖是在哪个 pom 文件下
但并没有找到。。。
于是乎点开 idea 右侧工具栏的 maven列表,发现是在 org.codehaus.groovy:groovy-all:pom:2.5.14 下面有资源依赖了这个 tools
网上基本上都说 com.sun:tools 这个资源来自 jdk 的 lib 目录下的 tools.jar
大多数的解决方案都是在 pom 文件中去引入 jdk 的 lib 目录下的 tools.jar
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8.0_301</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
这样确实是可以解决,但我去看了我的 jdk 安装目录(从官网下载的解压包),并没有这个 jar,所以这个方法对我无效,查找资料之后发现是 jdk11 以后简化了环境配置方式,是没有 tools.jar 和 dt.jar 的
于是我就猜想这个 1.8.0 会不会是对应 jdk 的版本号,而恰巧我之前用的就是 jdk8,打开了 lib 目录之后发现是有的
这时我先想到的就是更换项目的 jdk 版本,但这是刚开始搭框架就选好的技术栈,改版本不现实,所以pass
既然改版本不现实,那我如果把 jdk1.8 的 tools.jar 复制到 jdk11 下面是否行得通呢?
复制过去之后回到 idea 对项目进行 reimport 之后,成功解决问题
但是这样做会不会出现 jdk 的兼容问题就有待考究了。
相关文章
暂无评论...