繁体   English   中英

无法定位 tools.jar

[英]Unable to locate tools.jar

我正在 Java 建设一个项目。

我有这个错误:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

我已经安装了 JDK,文件夹: C:\Program Files\Java\jre6\lib在我的系统中,但文件tools.jar不存在。

是的,您已经下载并安装了 Java 运行时环境 (JRE) 而不是 Java 开发工具包 (JDK)。 后者有tools.jar、java.exe、javac.exe等。

如果这对任何人来说仍然是一个问题,我对之前的答案有一些澄清。 我在使用仅安装了 JDK 的 ant 时遇到了同样的问题。 虽然,JDK 安装程序给了我这样的目录结构:

 Directory of C:\Program Files\Java

05/08/2012  09:43 AM    <DIR>          .
05/08/2012  09:43 AM    <DIR>          ..
05/08/2012  09:46 AM    <DIR>          jdk1.7.0_04
05/08/2012  09:19 AM    <DIR>          jre6
05/08/2012  09:44 AM    <DIR>          jre7
               0 File(s)              0 bytes

当我运行 ant 时,它抱怨在 jre7 子目录下找不到 tools.jar。 直到我set "JAVA_HOME=C:\\Program Files\\Java\\jdk1.7.0_04" ,错误才消失。

  1. 安装Java SDK

  2. 添加名为JAVA_HOME的系统环境变量,其值为 JDK location。
    转到控制面板\\系统和安全\\系统。 高级系统设置、环境变量、系统变量、新... 示例:
    变量名: JAVA_HOME
    变量值: C:\\Program Files\\Java\\jdk1.7.0_21

  3. 关闭/重新打开 CMD 窗口,以便在尝试重新运行 ant 命令之前新变量生效。

我遇到了同样的问题,C:\\Program Files\\Java\\jdk1.6.0_26\\lib\\tools.jar复制C:\\Program Files\\Java\\jre6\\lib\\ext对我C:\\Program Files\\Java\\jre6\\lib\\ext

将您的JAVA_HOME环境变量设置为指向C:\\Program Files\\Java\\jdk1.7.0_02

如果您使用的是 Linux,则可以通过在系统上安装 java 来解决此问题:

sudo apt-get install openjdk-7-jdk openjdk-7-jre

如果您安装了 JDK 9.0.1,您也会遇到这个问题,因为 tools.jar 已被弃用。 请参阅迁移文档

不,根据您的目录结构,您安装的是JRE,而不是JDK。 有区别。

C:\Program Files\Java\jre6\lib
                      ^^^^

它应该是这样的:

C:\Program Files\Java\jdk1.6.0_24

不要花太多时间寻找tools.jar 如果您遇到这样的错误,请不要沮丧。

如果您已经有 java JDK 1.5,请转到您的lib文件夹, tools.jar应该在那里可用。 将其复制并粘贴到您的 ant bin文件夹中,然后尝试使用命令ant -version

您应该会看到预期的结果。

我在 linux 机器上遇到了同样的问题。 起初我很沮丧,因为我已经安装了 JDK 和 JRE。 我同时使用 1.6、1.7 和 1.8 版本,并且我已经使用了很多替代方案来正确设置所有内容。

这个问题解决起来很愚蠢,但又违反直觉。 当我使用正确的 JDK 时,我注意到了 jar Maven 抱怨的工具的路径 - 它期望它是

$JAVA_HOME\..\lib\tools.jar

$JAVA_HOME变量直接指向我的jdk文件夹( /usr/local/java这也是正确的$PATH条目和替代符号链接)。 它实际上是在 java 目录之外搜索lib文件夹,因为:

$JAVA_HOME\..\lib\tools.jar

将决心

/usr/local/lib/tools.jar

这不是一个有效的位置。

为了解决这个问题, $JAVA_HOME变量应该指向这个位置/usr/local/java/jre (假设 JDK 路径是/usr/local/java )——在 JDK 安装目录中实际上有jre文件夹,它来了每个JDK。 这个新设置将使 maven 查看 JRE 目录,它是 JDK 的一部分:

$JAVA_HOME\..\lib\tools

现在解决了

/usr/local/java/jre/../lib/tools.jar

最后到

/usr/local/java/lib/tools.jar

这是tools.jar真正驻留的地方。

因此,即使您确实使用的是 JDK 而不是 JRE,$JAVA_HOME 也必须指向 JRE。 请记住,操作系统替代方案仍应参考 JDK。

转到安装 java 的 jdk 路径

例如,在我的 PC 中,JDK 安装在以下路径中

"C:\\Program Files\\Java\\jdk1.7.0_17\\";

转到 lib 文件夹后,例如“C:\\Program Files\\Java\\jdk1.7.0_17\\lib”

在 lib 目录中有 tool.jar 文件

复制此文件并将其粘贴到 jre7 目录的 lib 文件夹中,例如

“C:\\Program Files\\Java\\jre7\\lib”

你在 Ubuntu 上可能会遇到类似的问题:

Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar

问题在于 JAVA_HOME 设置不正确。

因此,在使用 Java8 的 Ubuntu 14.04 x64 上:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

值得观察的是 tools.jar 自 Java 9 以来已从 JDK 中删除。 https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-055EA9F4-835DB915BD3F

如果人们在使用 JDK 9+ 编译 Java 程序时遇到这个问题,您可能需要检查项目的依赖项。

就我而言,我试图使用 AspectJ 和 Maven 插件org.codehaus.mojo:aspectj-maven-plugin:1.11编译一个项目。 在网上搜索后,找到了一个支持Java 9+的替代方案: dev.aspectj:aspectj-maven-plugin:1.13.M3

即使在安装 Java JDK 并将JAVA_HOME..\\jdk1.6.0_45\\bin文件夹后,我也遇到了同样的问题。

Ant 仍在尝试在C:\\Program Files\\Java\\jre6\\lib文件夹中查找tools.jar
我通过添加JAVACMD环境变量并将其路径设置为jdk文件夹中的java.exe来修复它。
就我而言,它是C:\\Program Files\\Java\\jdk1.6.0_45\\bin\\java.exe

通过在运行之前设置 JAVA_HOME 变量,我在 Windows 操作系统中解决了这个问题,如下所示:

设置 JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_111

正如许多人所提到的,您似乎正在 JRE 而不是 JDK 中查找 tools.jar 文件。

我还想提一下,在最新版本的 JDK 中,没有更多的 tools.jar 文件。 我下载了今天最新的 JDK(JDK 版本 12),但找不到任何 tools.jar。 我必须在这里https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载 JDK 版本 8 (1.8.0) 才能获取 tools.jar 文件。 我下载了那个版本,把 tools.jar 文件放到我最近版本的 lib 文件夹中。

确保 %JAVA_HOME% 和 %JAVA_HOME%/bin 路径都添加到您的 PATH 变量中。

关于将 tools.jar 复制到正确位置的所有答案充其量只是一个糟糕的主意。

确保您的 IDE 可以按照其设计和预期方式找到这些 jar。

在eclipse窗口>首选项>Java>安装的JRE中,我将目录指向jdk 1.7中的jre目录,我为我工作了文件,例如C:\\Program Files\\Java\\jdk1.7.0_71\\jre

我的 JDK_path ( C:\\Program Files\\Java\\jdk1.7.0_79 )在我的JAVA_HOME和 JDK_path\\bin 在我的PATH 但是,我的蚂蚁仍然使用 JRE 而不是 JDK。

问题是我在PATH变量中的C:\\ProgramData\\Oracle\\Java\\javapath之前有C:\\ProgramData\\Oracle\\Java\\javapath 我只是在 oracle 之前移动了我的 JDK_path,问题就解决了。

解决这个问题我只是将 tools.jar 文件从 C:\\Program Files\\Java\\jre1.8.0_112\\lib 复制到 C:\\Program Files\\Java\\jdk1.8.0_112\\lib 这样我就有了两个 tools.jar文件而不是一个,问题就消失了。

maven-compiler-plugin 使用 jdk,而不是 jre,tools.jar 在 C:\\Program Files\\Java\\jdk1.6.0\\lib\\tools.jar 中,您必须使用 jdk 而不是 jar 配置项目 JRE 系统库。 这是最简单的解决方案。

  • 右键单击您的 ant 文件
  • 转到“运行方式”,然后单击“Ant Build...”
  • 转到“JRE”选项卡
  • 选择 JDK 而不是 JRE

对我来说什么是有效的:我下载了旧版本的 Java 1.7

我实际上从 C:/program files X86/Java 设置了我的 JAVA_HOME 但是在我安装了 1.7 版本之后我在程序文件/Java 中有另一个 Java。 此刻我在这里找到了tools.jar。 然后我改变了这条新路径,它正在工作

我也面临同样的错误。 这在将 Java_Home 路径设置为 C:\\Program Files\\Java\\jdk1.8.0_121 后被删除。 在系统路径变量中定义 %JAVA_HOME%\\bin 后,请确保路径中不包含 bin 并且 jdk1.8.0_121 之后没有斜线。

如果您在 RHEL 环境中,包含 tools.jar 的包名称将以“openjdk-devel”结尾。

这是 Windows 的解决方案:在Computer > Advanced system settings > Advanced > Environment variables... 中,在System variables 中添加:

在此处输入图片说明

我已经下载了 tools.jar,然后我将它复制到错误消息中的路径中。

C:\\Program Files\\Java\\jdk-11.0.1\\bin > 在这里粘贴 tools.jar

之后,我重新启动了 Spring Tool Suit 4,一切正常。 当我试图解决这个问题时,我创建了新的环境变量:控制面板/系统/高级/环境变量/新名称:JAVA_HOME 值:C:\\Program Files\\Java\\jdk-11.0.1 但我不知道是有必要。

也许您已经更新了操作系统中的 JRE,并且在环境变量的“路径”中添加了一个条目“.../Oracle/jer”,它会覆盖您的 JAVA_HOME。 尝试通过离开 JAVA_HOME 将其从“路径”中删除。

Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

如果你已经安装了 jdk 那么

..Java/jdkx.xx

文件夹必须存在于那里所以停止它并给出完整的路径

C:\Program Files\Java\jdk1.6.0\lib\tools.jar

确保您的类路径设置正确并指向您安装的 JDK 的正确版本。 另外,您使用的是 Open JDK 吗? 在我尝试从开放 JDK 迁移到 Suns JDK 之前,我遇到过这个问题。 是如何解决该问题的示例。

如果有帮助,我的问题是我的 PATH 环境变量中有 2 个条目指向包含 javaw 可执行文件的位置。

我清理了变量以确保“%JAVA_HOME%\\bin”是唯一引用包含我的 java 可执行文件的位置的条目。

当未设置环境变量 JAVA_HOME 或指向错误的目录时,会发生这种情况。 您可以通过运行以下命令查看 Ant 的值:

ant -diagnostics

并寻找显示java.home的行。 如果你安装了grep那么你可以简单地运行:

ant -diagnostics | grep java.home

要解决此问题,请将JAVA_HOME环境变量设置为 JDK 目录。 虽然设置变量在 *nix 和 Windows 之间略有不同,但 rest 在所有操作系统上的工作方式相同。 因此,无论您使用 Windows 提供的 GUI,还是setsetx命令,只要在调用ant之前设置该值(如果您已全局设置它,那么它必须在您打开 shell 之前存在) /终端窗口)。

设置JAVA_HOME后,您可以运行ant -version ,例如,并获得结果,例如

Apache Ant(TM) 版本 1.10.8 2020 年 5 月 10 日编译

Step1 检查你的jdk是否安装。 并设置了变量路径。 第 2 步卸载您的 eclipes 并重新安装它。 否则它将继续是一个问题

Java最新版本lib文件夹下没有tools.jar。 删除环境变量中的 tools.jar 条目并重试。

我最近解决了 tool.jar 文件错误。 我正在使用 eclipse 氧气 ide。它工作起来非常简单。 在您的系统上重复这些步骤

  1. 根据你的jre jdk版本下载tool.jar文件。 让我们假设 tool.jar 文件是 1.8.0.tool.jar

  2. 下载 1.8.0 tool.jar 后文件重命名为 tool.jar

  3. 然后go到你的jdk安装文件夹

  4. 然后go到lib文件夹打开吧

  5. 并粘贴在这里

  6. 您将创建此类型路径。 E:\jdk 8\lib\tools.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM