安装 Spring Tool Suite 时出现 JRE 问题

JRE issue with getting Spring Tool Suite installed

我从这里下载了 Spring Toolset 3.6:

https://spring.io/tools/sts/all

解压缩,启动 sts.exe 并收到此错误:

---------------------------
STS
---------------------------
A Java Runtime Environment (JRE) or Java Development Kit (JDK)
must be available in order to run STS. No Java virtual machine
was found after searching the following locations:
D:\Setup\spring36\sts-bundle\sts-3.6.3.RELEASE\jre\bin\javaw.exe
javaw.exe in your current PATH
---------------------------
OK   
---------------------------

我有以下版本(32 位)java

C:\Users\Chad>java.exe -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) Client VM (build 24.71-b01, mixed mode, sharing)

我尝试将以下两行添加到 STS.ini 的顶部:

-vm
C:\Windows\SysWOW64\javaw.exe

并收到此错误:

---------------------------
STS
---------------------------
Java was started but returned exit code=13
C:\Windows\SysWOW64\javaw.exe
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-XX:MaxPermSize=256m
-Dorg.eclipse.swt.browser.IEVersion=10001
-jar D:\Setup\spring36\sts-bundle\sts-3.6.3.RELEASE\plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
-os win32
-ws win32
-arch x86_64
-showsplash
-launcher D:\Setup\spring36\sts-bundle\sts-3.6.3.RELEASE\STS.exe
-name STS
--launcher.library D:\Setup\spring36\sts-bundle\sts-3.6.3.RELEASE\plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326\eclipse_1603.dll
-startup D:\Setup\spring36\sts-bundle\sts-3.6.3.RELEASE\plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.overrideVmargs
-exitdata 1240_5c
-product org.springsource.sts.ide
-vm C:\Windows\SysWOW64\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-XX:MaxPermSize=256m
-Dorg.eclipse.swt.browser.IEVersion=10001
-jar D:\Setup\spring36\sts-bundle\sts-3.6.3.RELEASE\plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar 
---------------------------
OK   
---------------------------

尝试添加环境变量:

JAVA_HOME = C:\Windows\SysWOW64\

...同样的错误

当我打开 Java 控制面板时,我看到活动版本 1.7 指向这个路径:

C:\Program Files (x86)\Java\jre7\bin\javaw.exe

我还尝试将以下内容添加到我的 PATH 变量中

C:\Program Files (x86)\Java\jre7\bin

...没有变化,

当我注意到上述错误消息之一中的以下行时:

Dosgi.requiredJavaVersion=1.6

我尝试将 java 的活动版本(在控制面板中选中的那个)切换到 1.65 版本,并且我更改了上述所有路径以指向它。

C:\Program Files (x86)\Java\jre6\bin\javaw.exe

我确定我没有尝试所有的排列,但我显然是在喘不过气来。

我也尝试下载 32 位 JDK 因为我看到了一些关于可能需要它的东西。

这是某种 32/64 位混淆吗? STS zip 文件被命名为 32 位版本,尽管在我的笔记本电脑上工作时,我在某个地方发现了一个 zip 名称中同时包含 32 位和 64 位的版本。我只在 zip 文件中看到了一个版本的应用程序。一个应用程序如何同时是 32 位和 64 位?

spring-tool-suite-3.6.3.RELEASE-e4.4.1-win32.zip

这是我第一次尝试使用 Java 尝试任何事情,刚开始我很沮丧...

我认为您的 STS/Eclipse 是 x64 位是由于您的 STS 启动错误中的这一行“-arch x86_64”。 您需要在 STS.ini 中指定 -vm 参数。例如: -虚拟机 C:\Java\JDK.6\bin\javaw.exe

您指定的文件夹 C:\Windows\SysWOW64\javaw.exe...是否指向正确的 x64 VM? JDK/JRE文件夹必须有bin、lib等子文件夹。您指向的 javaw.exe 必须在 "bin" 文件夹中。我在您的 VM 路径中没有看到 "bin"。保持JDK/JRE文件夹的文件结构不变。

我的问题略有不同,因为 STS 最初可以正常工作一段时间,然后在下一次启动时无法工作。

根据错误消息中的建议('No Java virtual machine was found after searching the following locations: ...\sts-bundle\sts-3.6.3.RELEASE\jre\bin\javaw.exe in your current PATH'),我能够确定整个 \jre 都丢失了。

使用默认设置重新安装 JRE 1.7,并将文件从 C:\Program Files\Java 复制到我的 STS 安装解决了这个问题。

转到您安装的 JRE 文件夹 (\Program Files\Java\jre [安装的任何版本]\bin),然后查找 javaw.exe。将该应用程序复制到您的 spring 文件夹。

我在使用 STS4 时遇到了这个问题。 在SpringToolSuite4.ini中添加-vm参数解决了:

-startup
plugins/org.eclipse.equinox.launcher_1.5.100.v20180827-1352.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.800.v20180827-1352
-product
org.springframework.boot.ide.branding.sts4
--launcher.defaultAction
openFile
-vm
C:\Program Files\Java\jdk1.8.0_162\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
--add-modules=ALL-SYSTEM
-Xms40m
-Xmx1200m

重要提示:当我在文件末尾添加配置参数时这不起作用,它必须在 [= 之间11=]-vmargs 行。

有关 STS/Eclipse INI 配置检查的更详细信息 and eclipse.ini

Linux

此解决方案适用于:

Ubuntu 18.04.1 LTS

Spring Tool Suite 4 
Version: 4.1.1.RELEASE
Build Id: 201901241133
OS: Linux, v.4.15.0-45-generic, x86_64 / gtk 3.22.30
Java version: 11.0.2

在您的 Spring Tool Suite 根文件夹 添加到文件 SprintToolSuite4.ini openFile 之后的 2 行:

-vm
/usr/lib/jvm/<your-java-folder>/<your-java-subfolder>/bin

您的 SprintToolSuite4.ini 文件现在应该如下所示:


其他操作系统

将 JRE 的正确路径( /bin 文件夹)添加到 ini 文件。

这个问题我遇到过很多次了。请进行以下检查以纠正上述问题。

  1. 检查 Java 的环境变量。有时即使环境变量设置正确,它也无法识别您何时在命令提示符下尝试 java -version
  2. 如果是 eclipse/STS 则打开 eclipse.ini 或 sts.ini 配置文件并按以下方式设置您的 运行-time 环境。

在打开的文件下方添加以下两行并保存并重新启动您的 eclipse/STS。

-vm
C:\Program Files\Oracle\OpenJDK 11.0.1\bin

我通过以下步骤解决了这个问题:

  1. 在 sts-4.6 中创建一个 jre 文件夹。1.RELEASE

  2. 在jre文件夹中创建bin文件夹

  3. 复制javaw.exe并粘贴到bin文件夹

您的路径中需要 C:\Program Files\Java\jdk-14.0.2\bin

还要检查一下,

-vm
C:\Program Files\Java\jdk-14.0.2\bin\javaw.exe

SpringToolSuite4.ini.

确认以上再打开 SpringToolSuite4.exe.

将sts 发布文件夹复制到程序文件。它对我有用,而不是在 .ini 配置文件中进行更改。试试吧。