首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XAMPP上的Tomcat无法为JAVA_HOME启动

XAMPP上的Tomcat无法为JAVA_HOME启动
EN

Stack Overflow用户
提问于 2018-03-15 05:09:33
回答 2查看 3.3K关注 0票数 2

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

我为JDK和JRE版本设置了环境变量。我在“用户的用户变量”和“系统变量”这两部分中添加了相同的值。我添加的变量是: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时,我得到了这个错误:

代码语言:javascript
复制
[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文件的文本(我认为这是默认的)是:

代码语言:javascript
复制
@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

我已经尝试了许多解决方案,但没有一个对我有帮助。我想知道如果有人能帮我解决这个问题,我将非常感激。我希望我已经解释清楚了(对不起我的英语)。谢谢你的建议。

EN

回答 2

Stack Overflow用户

发布于 2019-04-17 22:59:32

我通过改变代码行解决了这个问题

代码语言:javascript
复制
set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit

代码语言:javascript
复制
set KeyName=HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK

我查看了我的注册表,发现预期的键是用常用的缩写JDK创建的。

另外,我还把我的tomcat_service_install.bat改成了上面提到的键名。这使得作为windows服务的安装成为可能。

票数 2
EN

Stack Overflow用户

发布于 2019-03-01 13:22:28

我通过使用zip-file下载Java11.0.2为自己解决了这个问题。因此,它没有创建注册表项,所以我手动添加了它。上面的代码只搜索KeyName中的注册表项,所以只需像这样创建注册表项

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\<your version>

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

您可以通过以下方式完成此操作

SOFTWARE

  • select

  • 按Win+R

  • 键入“regedit”

  • ,然后转到HKEY_LOCAL_MACHINE -> SOFTWARE

  • 右键单击SOFTWARE

  • select "JavaSoft"

  • right folder

  • select HKEY_LOCAL_MACHINE -> Key<

>H113命名新文件夹,然后单击新建的Java folder

  • select HKEY_LOCAL_MACHINE -> Key

  • 将新文件夹命名为“JavaSoft Development Kit”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49287667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档