无法找到Java SE 14的tools.jar文件。

4

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

我的系统现在拥有:

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

我从Oracle官网下载了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,那么有什么替代品呢?


可能相关:如何在Windows上获取OpenJDK 11的tools.jar?。简而言之,更新其他工具的版本,使其不再依赖于tools.jar - Pshemo
https://dev59.com/U4Xca4cB1Zd3GeqPFkDB#26973294 - Laura Liparulo
@LauraLiparulo,你的链接指的是Jdk 1.7版本。 - Giorgi Tsiklauri
@LauraLiparulo你的链接是关于Jdk 1.7的,对吧。 - Madala
这就是为什么我只说它可能是“可能相关的”,并没有将您的问题标记为重复。无论如何,我们仍然不知道您为什么需要 tools.jar。如果它是依赖于其他工具的某个工具,请尝试更新该工具。 - Pshemo
显示剩余2条评论
3个回答

4

我们需要安装其他的JRE包来帮助处理tools.jar吗?

不需要。没有简单的解决方法。

如果没有tools.jar,可以使用什么替代品?

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

Java 9+ 使用Java Platform Module System而不是tools.jar、rt.jar等工具。请参见此页面的其他答案,由Giorgi Tsiklauri提供。

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

  • 如果依赖关系在第三方代码(可能是工具)中,请将其升级到与您尝试使用的Java版本兼容的版本。


3

自Java 9起已被移除

自从Java 9发行版开始生效,JEP 220: 模块化运行时映像已经移除了rt.jartools.jardt.jar和其它一些JAR文件。

JEP中的引用如下:

已移除:rt.jar和tools.jar

先前存储在lib/rt.jar、lib/tools.jar、lib/dt.jar以及其它一些内部JAR文件中的类和资源文件现在以更有效的形式存储在lib目录下的实现特定文件中。这些文件的格式未经指定,可能会在不事先通知的情况下进行更改。


工具包 tools.jar 的功能已被取代,使用了什么替代品? - Madala
1
“JAR文件现在以更高效的格式存储在实现特定的文件中,位于lib目录中。” - 这是答案中的引用。不同的功能被放入了不同(相应的)的文件中。 - Giorgi Tsiklauri
1
@Madala JDK特定的模块。例如,javacjdk.compiler模块中,javadocjdk.javadoc模块中等等(尽管请注意,对于javacjavadoc,除非您需要访问低级别、供应商特定且不一定稳定的API,否则您可能希望依赖于标准的java.compiler模块)。 - Slaw

1

我刚刚也遇到了同样的问题。

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

$ sudo apt install openjdk-11-jdk-headless

然后,在IntelliJ IDEA中打开项目结构。快捷键:(Ctrl+Alt+Shift+S)。

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

在那里选择jdk版本(这里是openjdk 11)并将语言项目语言级别更改为11

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接