我看到以下屏幕:
通过脚本启动 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(可执行文件,主要)
当传递给 Eclipse 可执行文件时,此选项用于定位用于运行 Eclipse 的 Java VM。它应该是相应的完整文件系统路径:Java jre/bin 目录、Java 可执行文件、Java 共享库(jvm.dll 或 libjvm.so)或 Java VM 执行环境描述文件。如果未指定,Eclipse 可执行文件将使用搜索算法来定位合适的 VM。无论如何,可执行文件然后使用 -vm 参数将路径传递给用于 Java Main 的实际 VM。Java Main 然后将此值存储在 eclipse.vm 中。
我检查了可能的指针并尝试了不同的配置变体,即:
- 从其 .exe 文件而不是从上述脚本启动 STS,然后指定工作区
- 将
-vm
选项放入.ini
文件之前-vmargs
- 指向
-vm
包含 的文件夹,java.exe
而不是指向该特定文件 - 指向
javaw.exe
而不是java.exe
- 指向
-vm
JRE 目录而不是 JDK 目录。 - 等等
同样的错误仍然存在。
看起来有些东西将 STS 重定向到内部C:\Program Files\Java\jre1.8.0_191
而不是我指向的地方C:\Java\jdk1.8.0_144\bin
。C:\Java\jdk1.8.0_144\jre\bin
这里有什么问题?
先感谢您。
更新:
正如马丁所建议的,以下修改:
如果通过双击 STS 可执行文件来调用,则会打开 2 个 STS 窗口:一个常规 STS 窗口(现在没有初始缺失tools.jar
提示)加上这个:
但是,当从命令行通过脚本运行时,和以前一样,无法完全打开 STS:
最终的解决方案:
正如 Martin 在他的评论中正确指出的那样,上述脚本存在几个问题:
-vm
后面需要一个空格和 JDK 的路径- 重复
-vmargs
是导致最初错误行为的罪魁祸首 - 指向
javaw.exe
而不是java.exe
有助于隐藏第二个窗口。 -XX:MaxPermSize=256m
在 Java 8 下不再需要。
考虑到上述情况,以下是现在的工作:
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