【问题标题】:Unable to locate tools.jar for Java SE 14无法找到 Java SE 14 的 tools.jar
【发布时间】:2020-09-01 22:40:43
【问题描述】:

tools.jar 在最新的 Java 版本 14 中不存在。谁能帮我了解它是否被替换或在哪里?

我的系统有:

C:\Users\Admin>wmic os get osarchitecture
OSArchitecture
64-bit

我已经通过从Oracle's website 下载jdk-14.0.2_windows-x64_bin.exe 安装了最新的Java 版本。

安装后,我查看了安装文件夹C:\Program Files\Java\jdk-14.0.2\lib,它没有tools.jar

我们是否需要为 JRE 安装任何其他有助于 tools.jar 的软件包?

如果tools.jar 不存在,替换的是什么?

【问题讨论】:

  • 可能相关:How to get tools.jar for OpenJDK 11 on Windows?。简而言之,将其他工具更新到不再依赖 tools.jar 的版本。
  • @LauraLiparulo 您的链接指的是 Jdk 1.7。
  • @Pshemo 解释了部分原因,但没有完全回答尽管这来自“JEP 220 删除了众所周知且经常引用的 JAR rt.jar 和 tools.jar。根据它的描述, “以前存储在 lib/rt.jar、lib/tools.jar、lib/dt.jar 和各种其他内部 jar 文件中的类和资源文件现在将以更有效的格式存储在 lib 中的特定于实现的文件中目录。”
  • @LauraLiparulo 您的链接指的是 Jdk 1.7。正确..

标签: java tools.jar


【解决方案1】:

我们是否需要为 JRE 安装任何其他对 tools.jar 有帮助的包?

没有。没有简单的解决方法。

如果 tools.jar 不存在,替换是什么?

没有直接替代品。相反,您必须更改应用程序,使其不依赖于文件的存在。

Java 9+ 使用Java Platform Module System 而不是 tools.jar、rt.jar 等。请参阅 Giorgi Tsiklauri 的 other Answer on this page

  • 如果依赖项在您自己的代码中,请更改代码,以便它通过工具 API 访问 Java 编译器等。如果您的代码正在检查 tools.jar 是否存在,请删除检查并(如有必要)检查其他方式。

  • 如果依赖项位于第三方代码(可能是工具)中,则需要将其升级到与您尝试使用的 Java 版本兼容的版本。

【讨论】:

    【解决方案2】:

    从 Java 9 开始删除

    Java 9JEP 220: Modular Run-Time Images 移除rt.jartools.jardt.jar 和其他一些jar 文件后生效。

    引用 JEP:

    删除:rt.jar 和 tools.jar

    以前存储在 lib/rt.jar、lib/tools.jar、lib/dt.jar 和各种其他内部 JAR 文件中的类和资源文件现在以更有效的格式存储在lib目录。这些文件的格式未指定,如有更改,恕不另行通知。

    【讨论】:

    • 所以 tools.jar 的功能已经被替换为 ?
    • "JAR 文件现在以更有效的格式存储在 lib 目录中特定于实现的文件中。" - 引用自答案。不同的功能进入不同的(对应的)文件。
    • @Madala JDK 特定模块。例如,javacjdk.compiler 模块中,javadocjdk.javadoc 模块中,等等(尽管注意 javacjavadoc 您可能希望依赖标准 java.compiler模块,除非您需要访问低级、特定于供应商、不一定稳定的 API)。
    【解决方案3】:

    几分钟前我遇到了同样的问题。

    我通过在 Ubuntu 终端输入以下命令下载了openjdk-11-jdk-headless

    $ sudo apt install openjdk-11-jdk-headless
    

    然后,在 intellij idea 中打开project structure。快捷方式:(Ctrl+Alt+Shift+S)。

    您可以查看我的屏幕截图以获得视觉指南。

    选择jdk版本(openjdk 11 here)并将语言Project Language Level更改为11

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 2015-05-26
      • 2011-10-04
      • 2014-03-26
      • 2012-05-09
      • 1970-01-01
      • 2012-02-09
      相关资源
      最近更新 更多