You need to enable JavaScript to run this app. Eclipse Maven项目用JDK14且编译级别1.8时缺失jdk.tools:1.6的解决方案问询
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse Maven项目用JDK14且编译级别1.8时缺失jdk.tools:1.6的解决方案问询

问题核心原因

Java 9及以上版本已移除传统的tools.jar,相关功能已整合到JDK内置模块中,旧第三方依赖传递引入的jdk.tools:jdk.tools:jar:1.6依赖会因为无法匹配本地JDK资源报错,旧版本针对JDK8及更低版本的解决方案自然全部失效。

最优解决方案

步骤1:排除传递引入的jdk.tools依赖

首先定位你项目中传递引入jdk.tools的父依赖,在对应依赖声明中添加排除规则即可,示例配置如下:

<dependency>
    <groupId>【引入jdk.tools的父依赖groupId】</groupId>
    <artifactId>【引入jdk.tools的父依赖artifactId】</artifactId>
    <version>【对应版本】</version>
    <exclusions>
        <exclusion>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
        </exclusion>
    </exclusions>
</dependency>

如果不确定是哪个依赖引入的,可以在Eclipse中打开pom文件的「Dependency Hierarchy」标签页,搜索jdk.tools即可快速定位到父依赖。

步骤2:对齐Maven编译器插件配置

确认你的maven-compiler-plugin版本在3.8.0以上(该版本开始支持JDK9+环境编译低版本字节码),同时正确配置source、target、release参数,避免隐式依赖旧版JDK组件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <release>8</release>
    </configuration>
</plugin>

步骤3:刷新项目配置

在Eclipse中右键项目,选择「Maven」→「Update Project」,勾选「Force Update of Snapshots/Releases」后确认,即可清除报错。

注意事项
  • 不要继续添加system scope的tools.jar依赖,JDK14+中不存在该文件,强制指定路径只会引发新的报错
  • 若你的项目确实需要用到tools.jar对应的功能(比如动态编译、进程attach等),直接使用JDK内置的模块API即可,无需额外引入依赖

内容的提问来源于stack exchange,提问作者Gautam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 17:54:09