Я вижу следующий экран:
при запуске 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, которая будет использоваться для запуска Eclipse. Это должен быть полный путь файловой системы к соответствующему: Java каталог jre / bin, Java исполняемый файл, Java общая библиотека (jvm.dll или libjvm.so) или файл описания Java VM Execution Environment , Если не указано, исполняемый файл Eclipse использует алгоритм поиска для поиска подходящей виртуальной машины. В любом случае исполняемый файл затем передает путь к используемой виртуальной машине в Java Main, используя аргумент -vm. Java Main затем сохраняет это значение в eclipse.vm.
Я проверил this на возможные указатели и попробовал различные варианты конфигураций, например:
- запустить STS из файла .exe, а не из приведенного выше сценария, а затем указать рабочее пространство
- , поместив параметр
-vm
в файл .ini
перед -vmargs
- , указывающим
-vm
в папку, содержащую java.exe
вместо указанного c файла - , указывающего на
javaw.exe
вместо java.exe
- , имеющего
-vm
, указывающего на каталог JRE, а не каталог JDK. - et c.
Та же ошибка сохраняется.
Похоже, что-то перенаправляет STS, чтобы заглянуть внутрь C:\Program Files\Java\jre1.8.0_191
вместо C:\Java\jdk1.8.0_144\bin
или C:\Java\jdk1.8.0_144\jre\bin
, куда я указываю.
Что здесь может быть не так?
Заранее спасибо.
ОБНОВЛЕНИЕ:
Как предложил Мартин, следующая модификация:
, если вызвано b y двойной щелчок по исполняемому файлу STS приводит к открытию 2 STS windows: обычного STS (теперь без начального пропущенного приглашения tools.jar
) плюс этот:
однако при запуске через скрипт из командной строки, как и раньше, не удается открыть STS вообще:
ЗАКЛЮЧИТЕЛЬНОЕ РЕШЕНИЕ:
Как правильно указал Мартин в своем комментарии, есть несколько проблем с приведенным выше сценарием:
-vm
требуется пробел после него и путь к JDK - , дублированный
-vmargs
был виновником первоначального ошибочного поведения - , указывающего на
javaw.exe
вместо java.exe
, помогает скрыть второе окно . -XX:MaxPermSize=256m
больше не требуется в Java 8.
С учетом вышесказанного, вот что работает сейчас:
1) SpringToolSuite4.ini
может остаться нетронутым, нет необходимости (хотя это возможно и работает) добавить туда путь к JDK, как указано в моем p предыдущее обновление:
-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