0

我看到以下屏幕:

类似的问题

通过脚本启动 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
  • 指向-vmJRE 目录而不是 JDK 目录。
  • 等等

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

看起来有些东西将 STS 重定向到内部C:\Program Files\Java\jre1.8.0_191而不是我指向的地方C:\Java\jdk1.8.0_144\binC:\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  
4

1 回答 1

1

-vmarg 添加到.ini文件中应该可以,但您需要小心地将其放入该文件内的正确位置。-vm必须是该文件中的第一行,然后是指向 JDK 的 java 可执行文件的附加 like。然后第三行应该继续-startup您在.ini文件中拥有的部分。

于 2020-02-06T09:20:57.823 回答