我正在看到以下屏幕:
通过脚本启动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可执行文件时,此选项用于查找要用于运行的Java VM日食。它应该是适当的完整文件系统路径:Java jre / bin目录,Java可执行文件,Java共享库(jvm.dll或libjvm.so)或Java VM执行环境描述文件。如果未指定,则Eclipse可执行文件使用搜索算法来找到合适的虚拟机。无论如何,可执行文件都会通过使用-vm参数的Java Main使用的实际VM的路径。爪哇Main然后将该值存储在eclipse.vm中。
我检查了this可能的指针,并尝试了不同的配置变化,即:
-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
内部。
这里可能有什么问题?
先谢谢您。
UPDATE:
如马丁建议,进行以下修改:
如果通过双击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)现在可以通过以下方式(在Windows上)成功调用STS:
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
我看到以下屏幕:通过脚本STS启动时:start / BC:\“ Program Files” \ SpringTools4 \ sts-4.5.0.RELEASE \ SpringToolSuite4.exe -data%〜dp0 -clean -showlocation -vmC :\ Java \ jdk1.8.0_144 \ ...
将-vm
arg添加到.ini
文件应该可以,但是您需要小心地将其放入该文件内的正确位置。 -vm
必须是该文件中的第一行,其后是指向JDK的Java可执行文件的附加字符。然后,第三行应以-startup
文件中的.ini
部分开头。