我下载了适用于 Windows 8 的 apache-tomcat-7.0.40,并按照说明C:\apache-tomcat-7.0.40> startup.bat
在命令提示符下使用。tomcat应用出现1秒后消失,可能是文件安装不够?我应该怎么办?而我的本地主机是互联网信息服务。
6 回答
在命令提示符下运行以下命令,您将获得根本原因。
...\apache-tomcat-7.0.42\bin> catalina.bat run
就我而言,这是因为我运行catalina.bat start
并且此命令创建了新的命令提示符,同时catalina.bat run
在同一命令提示符中执行并且在完成后不会关闭它。
尝试删除 CATALINA_HOME 变量路径末尾的斜杠。
Catalina 需要JAVA_HOME
正常工作。所以配置java jreJAVA_HOME
的路径和环境变量。
要查看错误,请在命令提示符下执行
\path\apache-tomcat-6.0.41\bin > catalina.bat run
转到您的 tomcat/bin 文件夹。编辑 startup.bat 文件,注释掉最后一行,其中一行:
call "%EXECUTABLE%" run >..\logs\OutputFile.log 2>&1 start %CMD_LINE_ARGS% run >..\logs\OutputFile.log 2>&1
使用 'rem' 开头注释掉它。
rem call "%EXECUTABLE%" run >..\logs\OutputFile.log 2>&1 start %CMD_LINE_ARGS% run >..\logs\OutputFile.log 2>&1
那么控制台将保持打开状态。如果此行被注释,则意味着它说关闭控制台并将输出写入某个外部日志文件。
您的问题很可能是CATALINA_HOME
环境变量的错误路径。
上面的答案会有所帮助,但我会补充一点,这会更广泛,因为它可能有助于连接到服务器启动的不同类型的异常,即 - to CATALINA_HOME
.
在后期版本中Tomcat
,其实不需要设置环境变量CATALINA_HOME
。如果你看一下 start startup.bat
,脚本会在每次执行时自行设置。
[23-30] 行中的脚本Tomcat 9
:
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
因此,为了安全起见,您的环境变量不会与 Tomcat 脚本startup.bat
(或其他任何东西)定义的内容混淆,您可以:
- 完全删除你的
CATALINA_HOME
环境变量,只要你用startup.bat
;启动你的服务器。 - 如果您坚持要以其他方式启动它,请更正您的环境变量
CATALINA_HOME
路径,并确保在运行时没有任何内容覆盖它。