XAMPP上的Tomcat无法为JAVA_HOME

时间:2018-03-14 21:09:33

标签: java tomcat xampp catalina

我已经在SO上阅读并尝试了很多帖子,但没有人解决过这个问题。

我设置了JDK和JRE版本的环境变量。我在两个部分中都添加了相同的值" USER"的用户变量和"系统变量"。我添加的变量是:JAVA_HOME->C:\PROGRA~1\Java\JDK9U4~1 and JRE_HOME->C:\PROGRA~1\Java\JRE9U4~1.

我的JDK和JRE的安装目录是" C:\ Program Files \ Java \ JDK 9u4"和" C:\ Program Files \ Java \ JRE 9u4"。

当我运行catalina_start.bat时,我收到此错误:

[XAMPP]: Searching JDK HOME with reg query ...
Errore: The registry key or the specified value could not be found.
. [XAMPP]: Cannot find current JDK installation!
. [XAMPP]: Cannot set JAVA_HOME. Aborting ...
done.

我的catalina_start.bat文件的文本(我认为这是默认的)是:

@echo off
::::::::::::::::::::::::::::::::::::
::  Set JAVA_HOME and   ::
::::::::::::::::::::::::::::::::::::

IF EXIST tomcat\logs\catalina.pid (
  del /F/Q tomcat\logs\catalina.pid
) 

echo.
echo [XAMPP]: Searching JDK HOME with reg query ...
set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit

reg query "%KeyName%" /s
if %ERRORLEVEL% == 1 (
  echo . [XAMPP]: Cannot find current JDK installation! 
  echo . [XAMPP]: Cannot set JAVA_HOME. Aborting ...
  goto :END
)

set "CURRENT_DIR=%cd%"
set "CATALINA_HOME=%CURRENT_DIR%"

:: only for windows 32 bit if you have problems with the tcnative-1.dll
:: set CATALINA_OPTS=-Djava.library.path="%CATALINA_HOME%\bin"

set Cmd=reg query "%KeyName%" /s
for /f "tokens=2*" %%i in ('%Cmd% ^| find "JavaHome"') do set JAVA_HOME=%%j

echo.
echo [XAMPP]: Seems fine!
echo [XAMPP]: Set JAVA_HOME : %JAVA_HOME%
echo [XAMPP]: Set CATALINA_HOME : %CATALINA_HOME%
echo.

if %ERRORLEVEL% == 0 (
echo run > logs\catalina.pid
)

"%CATALINA_HOME%\bin\catalina.bat" run


:END
echo done.
pause

我已经尝试了很多解决方案,但没有任何帮助我。我想知道是否有人可以帮我这个,我将非常感激。我希望我已经清楚地解释了自己(对不起我的英语)。谢谢你的建议。

2 个答案:

答案 0 :(得分:0)

我通过使用zip文件下载Java 11.0.2为我解决了这个问题。因此,它没有创建注册表项,因此我手动添加了它。上面的代码仅在KeyName中搜索注册表项,因此只需将其创建为

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\<your version>

无需添加任何值,只需创建路径即可。

您可以通过以下方式实现

  • 按下Win + R
  • 输入“ regedit”
  • 然后转到HKEY_LOCAL_MACHINE->软件
  • 右键单击软件
  • 选择新建->键
  • 将新文件夹命名为“ JavaSoft”
  • 右键单击新创建的JavaSoft文件夹
  • 选择新建->键
  • 将新文件夹命名为“ Java Development Kit”。

答案 1 :(得分:0)

我通过更改行来解决了这个问题

set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit

set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK

我查看了我的注册表,发现期望的密钥已经用常用的缩写JDK创建了。

我还额外将tomcat_service_install.bat更改为上述键名。这样就可以将其安装为Windows服务。