通过命令行调用时,SpringTools Suite中的Missing tools.jar

问题描述 投票:0回答:1

我正在看到以下屏幕:

similar question

通过脚本启动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环境变量已定义:

enter image description here

根据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可能的指针,并尝试了不同的配置变化,即:

  • 从其.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\binC:\Java\jdk1.8.0_144\jre\bin内部。

这里可能有什么问题?

先谢谢您。

UPDATE:

如马丁建议,进行以下修改:

enter image description here

如果通过双击STS可执行文件调用,将导致打开2个STS窗口:一个常规STS窗口(现在没有最初缺少的tools.jar提示)加上此窗口:

enter image description here

但是,像以前一样,通过命令行从脚本运行时,无法完全打开STS:

enter image description here


最终解决方案:

如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 \ ...

java eclipse spring-tool-suite tools.jar
1个回答
1
投票

-vm arg添加到.ini文件应该可以,但是您需要小心地将其放入该文件内的正确位置。 -vm必须是该文件中的第一行,其后是指向JDK的Java可执行文件的附加字符。然后,第三行应以-startup文件中的.ini部分开头。

© www.soinside.com 2019 - 2024. All rights reserved.