Java:`tools.jar`

`tools.jar` 是 JDK 8 及之前版本中用于编译和工具调用的核心库,位于 `$JAVA_HOME/lib/tools.jar`。JDK 9+ 已将其模块化移除。

报错通常是因为 IDE(Eclipse/STS/IDEA)或构建工具(Maven/Gradle)配置指向了 JRE 而非 JDK,或者环境变量 `JAVA_HOME` 指向错误。

方案一:IDE 配置修正(推荐,适用于 Eclipse/STS/IDEA)

确保 IDE 使用的运行时环境是完整的 JDK 而非 JRE。

  1. Eclipse / STS:

编辑安装目录下的 `eclipse.ini` 或 `SpringToolSuite4.ini`,在 `-vmargs` 之前添加以下两行(路径替换为本地 JDK 8 的实际路径):

C:/Program Files/Java/jdk1.8.0_xxx/bin/javaw.exe

  1. IntelliJ IDEA:

进入 `File` -> `Project Structure` -> `SDKs`,确保 SDK 路径指向 JDK 根目录(包含 `lib/tools.jar`),而非 JRE 目录。若使用 Maven,检查 `Settings` -> `Build, Execution, Deployment` -> `Build Tools` -> `Maven` -> `Importing` 中的 `JDK for importer` 是否设置为正确的 JDK。

方案二:Maven 项目依赖缺失修复

若报错为 `Missing artifact jdk.tools:jdk.tools:jar:1.8`,需在 `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>

```

*注意:`${java.home}` 通常指向 JRE,故使用 `../lib/tools.jar` 回溯到 JDK 的 lib 目录。确保 `JAVA_HOME` 环境变量指向 JDK 根目录。*

方案三:Gradle 构建环境指定

若 Gradle 报错找不到 `tools.jar`,需在用户主目录下的 `.gradle/gradle.properties` 文件中指定 JDK 路径。

org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_xxx

方案四:文件缺失补救(仅当 JDK 安装损坏时)

若确认使用的是 JDK 8 但 `lib` 目录下确实缺少 `tools.jar`,可从同版本其他正常机器复制该文件至 `$JAVA_HOME/lib/` 目录下,或重新安装完整版的 Oracle JDK 8(避免使用精简版或仅包含 JRE 的安装包)。

相关推荐
Code_Solitude33 分钟前
C语言:指针题型总结
c语言·开发语言
IT枫斗者枫哥34 分钟前
Spring AI文档更新后仍命中旧内容:核对分片ID、来源和版本
java·人工智能
aibo86030842 分钟前
基于 Spring Boot + Vue3 的爱心众筹管理系统设计与实现
java·spring boot·后端
SimonKing43 分钟前
OpenCode免费模型直接给`Workbuddy`用,一键导入
java·后端·程序员
Tsuki_tl44 分钟前
【优选算法:双指针】——复写零题解
java·c++·算法·leetcode·数组·双指针·复写零
我命由我123451 小时前
Python 开发 - Python 项目部署(Windows 与 Linux)
java·linux·windows·后端·python·java-ee·python3.11
小白旗1 小时前
PHP 严重漏洞风险提醒:如何排查运行环境并做好安全更新
开发语言·php
丑梨数据1 小时前
法律合同知识库怎么搭:从图片压缩到私有化 RAG 的工程笔记
开发语言·笔记·c#
小羊没烦恼!1 小时前
TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
java·linux·运维·服务器·开发语言·数据库·mysql