【发布时间】:2019-12-19 00:57:51
【问题描述】:
我已安装 Java 11 并将系统变量设置为:
JAVA_HOME
C:\Program Files\AdoptOpenJDK\jdk-11.0.5.10-hotspot
和路径
C:\Program Files\AdoptOpenJDK\jdk-11.0.5.10-hotspot\bin
当我尝试使用 service.bat 将 tomcat 安装为服务时,出现以下错误:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
我在网上做了研究。我的路径设置正确。一些解决方案说在没有空格的目录中安装java,但我得到了同样的错误。
echo java 命令给了我正确的输出
echo %JAVA_HOME%
C:\Program Files\AdoptOpenJDK\jdk-11.0.5.10-hotspot
感谢任何帮助。谢谢
Edit1:对于 Andres 的回答,下面是我的第 57 -69 行
rem Make sure prerequisite environment variables are set
if not "%JAVA_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
echo Service will try to guess them from the registry.
goto okJavaHome
:gotJreHome
if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome
if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome
goto okJavaHome
:gotJdkHome
if not exist "%JAVA_HOME%\jre\bin\java.exe" goto noJavaHome
if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome
if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
if not "%JRE_HOME%" == "" goto okJavaHome
set "JRE_HOME=%JAVA_HOME%\jre"
goto okJavaHome
:noJavaHome
echo The JAVA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
echo NB: JAVA_HOME should point to a JDK not a JRE
goto end
:okJavaHome
【问题讨论】:
-
java -version输出? -
@RobertoManfreda openjdk version "11.0.5" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.5+10, mixed模式)
-
确保你的变量中没有类似 JRE_HOME 的东西。也许是一个旧的 jdk_8 相关变量。如果问题仍然存在,请尝试将您的 JAVA_HOME 移动到系统变量中(如果您还没有)。否则你的配置似乎是正确的!
-
我没有设置 JRE_HOME。我确实尝试将 Java Home 移动到用户变量,但没有奏效。
-
尝试移入系统变量。
echo %PATH%输出?