启动 STS 应用程序时缺少 tools.jar

Missing tools.jar when launching STS application

我有最新的STS4。我使用installed java-1.8 JDK not embedded 作为执行环境。我的项目运行良好,没有任何问题。

但是,当我启动 STS 应用程序本身时,我会弹出一个提示 "Missing tools.jar"

我已经试过了:

  1. JAVA_HOME 指向不同的 JDK
  2. .ini 文件中添加了 -vm 个参数。

但是我无法摆脱这个弹出窗口。

修复在 -vm 参数中。 javaw.exe 的顺序和绝对路径似乎是问题所在。

the readme file mentions _ "To run Eclipse with an alternate Java runtime environment, the path to the Java virtual machine's binary must be identified. With an Eclipse installation from the distribution, altering the $PATH variable to include the path to the alternate Java runtime environment is often not enough as the Eclipse that Linux distributions package often performs a scan internally to pick up GCJ by itself whilst ignoring what's on the $PATH."

所以我现在编辑了 SpringToolSuite4.ini 并制作了这个条目

  -vm
 C:\UserTemp\Softwares\java\jdk\oracle-jdk-1.8-64bit\bin\javaw.exe

重新启动了我的 STS,它运行良好。

设置 JVM Specifying the JVM 的参考对于理解这一点非常有用。

我通过修改文件 "eclipse.ini" 解决了同样的问题。首先我尝试通过修改文件SpringToolSuite4.ini来解决它,但没有任何反应,因为我以前安装了eclipse ide,并且SpringToolSuite4.ini中的更改没有起作用。然后我修改了文件eclipse.ini;它奏效了。

我在 eclipse.ini 中所做的更改详述如下:

要检查 Java 版本(JRE 或 JDK)Eclipse 运行,请执行以下操作:

  • 打开菜单项帮助 > 关于 Eclipse。 (在 Mac 上,它在 Eclipse 菜单中,而不是帮助菜单中)
  • 单击“安装详细信息”。
  • 切换到选项卡配置
  • 搜索以 -vm 开头的行。它后面的行显示使用了哪个 Java 二进制文件。

根据所用 Java 二进制文件的名称和位置,可以确定使用的是 JRE 还是 JDK:

  • 如果路径包含“jre”(例如在 C:\Program Files\Java\jre6\bin\client\jvm.dll 中)它是一个 JRE
  • 如果路径包含“jdk”(例如在 C:\Program Files\Java\jdk1.6.0_31\bin\javaw.exe 中)它是一个 JDK.

如果没有JDK用于Eclipse,请更改它:

  • 如果是 运行
  • ,请退出 Eclipse
  • 转到 Eclipse 安装目录并在文本编辑器中打开文件 eclipse.ini。
  • 搜索行 -vmargs
  • 在-vmargs这一行之前,添加两行:

    第一行写-vm

    在第二行,写下 JDK 安装路径(通常类似于:C:\Program Files\Java\jdk1.6.0_31\bin\javaw.exe on Windows)*

来源:https://matsim.org/docs/devguide/eclipse/jdk

我有STS4所以我修改了SpringToolSuite4.ini

我改自:

[...]
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.8
[...]

就是这样

[...]
--launcher.defaultAction
openFile
-vm
C:\Program Files\Java\jdk1.8.0_152\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
[...]

消息消失了

在我的例子中,我安装了 jre,而不是 jdk

请注意您已经 jdk 安装了!

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

如果您已经有 java JDK1.8,请转到其 lib 文件夹,tools.jar 应该在那里可用。将相同的内容复制并粘贴到 JRE1.8 lib 文件夹中。

解决方案:

检查你的路径 JAVA_HOME - 系统 属性 "Environment Variables"

例如:JAVA_HOME:

C:\程序Files\Java\jdk-12.0.1\lib

通常你只需要在 JAVA_HOME

添加 \lib

我升级到 Java 11 时遇到了同样的问题。

我只是编辑了 SpringToolSuite4.ini 并添加了

-虚拟机 C:\Program Files\Java\jdk-11.0.4\bin\javaw.exe

对我来说,我必须做两件事才能让它发挥作用:

  1. 删除 vmargs:
    • vmargs
    • Dosgi.requiredJavaVersion=1.8
  2. 设置JDK:
    • 虚拟机
      C:\程序Files\Java\jdk1.8.0_131\bin

通过下载工具文件并将其粘贴到jre\lib路径。但请确保将粘贴的文件重命名为 "tools.jar".

第一步 下载工具文件。 下载 link http://www.java2s.com/Code/Jar/t/Downloadtools160jar.htm

步骤 2 解压缩 zip 文件。

步骤 3 您应该将包含的 .jar 文件重命名为 "tools".

第 4 步 然后复制重命名的 tools.jar 文件并粘贴到 C:\Program Files\Java\jre8\lib\ path.

然后重启 STS ide。

  • 我已经从 Window->preferences->Java->Installed JREs 修复了这个问题。 然后添加jdk bin路径,取消勾选其他相关的jre路径

将JDK目录复制到您的STS安装或提取库中,并将JDK重命名为jre。 STS的目录结构应该是这样的

.eclipseproduct
artifacts.xml
configuration
dropins
eclipsec.exe
features
jre
license.txt
META-INF
open-source-licenses.txt
p2
plugins
readme
SpringToolSuite4.exe
SpringToolSuite4.ini

只需从变量“Path”中删除这一行

"C:\Program Files (x86)\Common Files\Oracle\Java\javapath" 

系统属性 > 高级 > 环境变量 > 路径 > 编辑 > 重启

为我工作

STS 打开后,最初它在 jre\lib 文件夹中寻找 tools.jar,但在 jre\lib 文件夹中找不到。

所以我们需要从 jdk\lib 文件夹复制 tools.jar 并粘贴到 jre\lib 文件夹。

重启STS,问题就会解决。