通过命令行调用时,SpringTools Suite 中缺少 tools.jar

Missing tools.jar in SpringTools Suite when invoking via command line

我看到以下屏幕:

STS 通过脚本启动时:

start /B C:\"Program Files"\SpringTools4\sts-4.5.0.RELEASE\SpringToolSuite4.exe -data %~dp0 -clean -showlocation -vmC:\Java\jdk1.8.0_144\bin\java.exe -vmargs -Xmx1024m -XX:MaxPermSize=256m -vmargs -javaagent:lombok.jar

这是我的 SpringToolSuite4.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1100.v20190907-0426
-product
org.springframework.boot.ide.branding.sts4
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-javaagent:C:\Program Files\SpringTools4\sts-4.5.0.RELEASE\lombok.jar

JAVA_HOME 环境变量定义:

根据 Eclipse 文档:

-vm (Executable, Main)

when passed to the Eclipse executable, this option is used to locate the Java VM to use to run Eclipse. It should be the full file system path to an appropriate: Java jre/bin directory, Java Executable, Java shared library (jvm.dll or libjvm.so), or a Java VM Execution Environment description file. If not specified, the Eclipse executable uses a search algorithm to locate a suitable VM. In any event, the executable then passes the path to the actual VM used to Java Main using the -vm argument. Java Main then stores this value in eclipse.vm.

我检查了 可能的指针并尝试了不同的配置变体,即:

同样的错误仍然存​​在。

看起来有些东西将 STS 重定向到 C:\Program Files\Java\jre1.8.0_191 内部,而不是我指向的 C:\Java\jdk1.8.0_144\binC:\Java\jdk1.8.0_144\jre\bin

这里可能有什么问题?

提前致谢。

更新:

按照 Martin 的建议,进行以下修改:

如果通过双击 STS 可执行文件调用,将导致打开 2 个 STS windows:一个普通的 STS(现在没有初始丢失的 tools.jar 提示)加上这个:

然而,当 运行 通过命令行脚本时,和以前一样,完全无法打开 STS:


最终解决方案:

正如 Martin 在他的评论中正确指出的那样,上述脚本存在几个问题:

考虑到上述情况,以下是现在的工作方式:

1) SpringToolSuite4.ini 可以保持完整,没有必要(尽管它是可能的并且可以工作)添加到 JDK 的路径,正如我之前更新中指出的那样:

  -startup
    plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1100.v20190907-0426
    -product
    org.springframework.boot.ide.branding.sts4
    --launcher.defaultAction
    openFile
    -vmargs
    -Dosgi.requiredJavaVersion=1.8
    -Xms256m
    -Xmx1024m
    -XX:+UseG1GC
    -XX:+UseStringDeduplication
    --add-modules=ALL-SYSTEM
    -javaagent:C:\Program Files\SpringTools4\sts-4.5.0.RELEASE\lombok.jar

2) 现在可以通过以下方式成功调用 STS(在 Windows 上):

start /B C:\"Program Files"\SpringTools4\sts-4.5.0.RELEASE\SpringToolSuite4.exe -data %~dp0 -clean -showlocation -vm C:\Java\jdk1.8.0_144\bin\java.exe -vmargs -Xmx1024m  

-vm arg 添加到 .ini 文件应该可行,但您需要小心地将其放入该文件内的正确位置。 -vm 必须是该文件的第一行,后面跟着一个额外的 like 指向 JDK 的 java 可执行文件。然后第三行应该继续你的 .ini 文件中的 -startup 部分。