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

33
我有最新的STS4。我正在使用安装的java-1.8 JDK而 不是 嵌入式作为执行环境。我的项目正常运行,没有任何问题。

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

错误截图

我已经尝试过:

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

但我仍然无法摆脱这个弹窗。


我们只有这么少的信息,远程帮助不了太多。请检查是否使用了正确的 .ini 文件,检查 -vm 选项是否只有一个(最好作为第一项),路径是否正确以及该选项是否具有正确的格式(-vm 在一行中,路径在下一行中)。 - Holger
我也遇到了同样的问题,但是我的电脑上没有安装Eclipse。我只运行STS,而且在STS安装文件夹中找不到任何eclipse.ini文件。 - Spear A1
我遇到了一个类似于 https://stackoverflow.com/questions/60081014/missing-tools-jar-in-springtools-suite?noredirect=1#comment106260424_60081014 描述的问题。 - Simeon Leyzerzon
13个回答

30

我通过修改“eclipse.ini”文件解决了同样的问题。起初我尝试通过修改“SpringToolSuite4.ini”文件来解决问题,但是没有任何效果,因为我之前已经安装了Eclipse IDE,而对“SpringToolSuite4.ini”的更改没有生效。然后我修改了“eclipse.ini”文件,并且它成功了。

下面详细介绍了我在“eclipse.ini”文件中所做的更改:

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

  • 打开菜单项帮助 > 关于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。

如果Eclipse未使用JDK,请更改它:

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

    在第一行上,写入“-vm”

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

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


但是我有一个问题,当我使用STS4时,eclipse.ini在哪里? - Shilan
如果您只安装了STS4,则必须修改SpringToolSuite4.ini文件,但如果您的系统中还安装了Eclipse IDE,则可能需要更改eclipse.ini文件以使更改生效。 - jomitame
这个有效!谢谢!我从Eclipse市场安装了STS4,所以其他答案中提到更改springtoolsuite4.init对我无效,因为我没有springtoolsuite4.init - frank
它对我有用。它说Eclipse正在使用JRE,我在'eclipse.ini'中添加了您的两行代码。值得注意的是,应该是“两行”。 - mazend

29
修复方法在“-vm”参数中,javaw.exe的顺序和绝对路径似乎是问题所在。 “readme”文件提到:“要使用备用Java运行时环境运行Eclipse,必须确定Java虚拟机二进制文件的路径。对于来自发行版的Eclipse安装,仅通过修改$PATH变量以包括备用Java运行时环境的路径通常不足够,因为Linux分发包中的Eclipse通常会自行执行扫描以自动选择GCJ,同时忽略$PATH上的内容。” 因此,我现在编辑了SpringToolSuite4.ini并进行了以下条目。
  -vm
 C:\UserTemp\Softwares\java\jdk\oracle-jdk-1.8-64bit\bin\javaw.exe

重启了我的STS,现在它运行得很完美。

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


16

不要花太多时间寻找tools.jar。 如果出现此类错误,请不要感到沮丧。

如果您已经安装了Java JDK1.8,请进入其lib目录,tools.jar应该可以在那里找到。将其复制并粘贴到JRE1.8 lib文件夹中。


修复得很好。谢谢 @Ankita - Lova Chittumuri

5
我有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
[...]

这条消息消失了。

我刚刚将我的STS更新到4.4.1版本,开始看到这个消息。你的答案帮了我,现在我不再看到这个消息了。谢谢。 - sunitkatkar
对我来说,该位置-vm指针位置的更改没有起作用,而是需要按照Martin的建议将其放在文件开头:https://stackoverflow.com/questions/60081014/missing-tools-jar-in-springtools-suite/60091457#60091457 - Simeon Leyzerzon

1

解决方案:

检查您的JAVA_HOME路径 - 系统属性 "环境变量"

例如:JAVA_HOME:

C:\Program Files\Java\jdk-12.0.1\lib

通常您只需要在JAVA_HOME后面添加 \lib

enter image description here


1

只需从变量“Path”中删除此行。

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

系统属性 > 高级 > 环境变量 > Path > 编辑 > 重新启动

对我有效


0

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

我只是编辑了SpringToolSuite4.ini文件,并添加了以下内容:

-vm C:\Program Files\Java\jdk-11.0.4\bin\javaw.exe


0
在我的情况下,我安装了jre,而不是jdk
请注意您是否已安装了jdk!

0
一旦打开了STS,初始时它会在jre\lib文件夹中寻找tools.jar文件,但是jre\lib文件夹中没有该文件。
因此我们需要从jdk\lib文件夹中复制tools.jar文件,并粘贴到jre\lib文件夹中。
重新启动STS,问题将得到解决。

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

enter image description here


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