导致Tomcat无法启动的原因
出版日期:2021年1月8日。
INFOMARTION > 导致Tomcat无法启动的原因
概述。
本节介绍了Tomcat不启动的原因以及如何处理这些原因。 这就是Tomcat由于某种原因不能启动,即使执行了startup.bat或startup.sh也会出现错误的原因和补救措施。 我想根据Tomcat版本'9.0.27'来解释这个问题。
目录
- 导致Tomcat无法启动的原因
- 1-1. 没有设置 JAVA_HOME。
- 1-2. JAVA版本与Tomcat不兼容。
- 1-3. JRE_HOME被启用。
- 1-4. 冲突的端口号。
- 摘要
1. 导致Tomcat无法启动的原因
导致Tomcat不启动的原因有很多,但本节介绍了可能导致Tomcat不启动的主要事件。
1-1. 没有设置 JAVA_HOME。
【原因】
如果JAVA_HOME和JRE_HOME都没有设置,则会输出以下错误。
C:\Users\user>C:\apache-tomcat-9.0.27\bin\startup.bat
The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program
【如何处理】
在 "系统属性,高级设置,环境变量 "中设置JAVA_HOME或JRE_HOME。 如果设置正确,在命令提示符下输入 "echo %JAVA_HOME%"、"echo %JRE_HOME%"等,将产生以下输出。 作为一项预防措施,如果你改变了环境变量,请重新启动命令提示符。 环境变量在命令提示符启动时被读取。
C:\Users\user>echo %JAVA_HOME%
C:\Program Files (x86)\Java\jdk-11
1-2. JAVA版本与Tomcat不兼容。
【原因】
Tomcat有一个支持的Java版本。 它可以在以下Tomcat网站上找到。
https://tomcat.apache.org/whichversion.html
例如,Tomcat版本 "9.0.27 "将是上述网站上 "Apache Tomcat版本 "的 "9.0.x",即 "8及以后"。
这意味着设置Java 8或更高的版本可以工作。
【如何处理】
根据以下Tomcat网站,将环境变量重写为相应的Java。
https://tomcat.apache.org/whichversion.html
1-3. JRE_HOME被启用。
【原因】
如果 "JRE_HOME "和 "JAVA_HOME "被设置,Tomcat对 "JRE_HOME "有效。 即使你看了 "JAVA_HOME",发现Java与Tomcat兼容,"JRE_HOME "也能工作,所以 "JRE_HOME "必须是与Tomcat兼容的Java。
【如何处理】
从 "系统属性,高级设置,环境变量 "中,将JRE_HOME中的Java改写为Tomcat对应的Java。
1-4. 冲突的端口号。
【原因】
Tomcat默认在8080端口启动。 如果有其他应用程序在8080端口运行,则会输出以下错误。
Critical [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-8080]]
【如何处理】
改变Tomcat的端口或停止正在运行的端口号有冲突的应用程序。
下面的命令将告诉你是否存在端口号冲突。 "8080 "部分应根据你自己的环境进行调整。 如果没有改变任何设置,数值为8080。 如果没有激活,则不返回任何响应。
※下面的命令是Windows。
C:\Users\user>netstat -nao | find "8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5748
TCP [::]:8080 [::]:0 LISTENING 5748
TCP [::1]:8080 [::1]:58259 TIME_WAIT 0
TCP [::1]:8080 [::1]:58260 TIME_WAIT 0
TCP [::1]:8080 [::1]:58261 TIME_WAIT 0
2. 摘要
如果Tomcat没有启动,请检查以下四点。
- 没有设置 JAVA_HOME。
- JAVA版本与Tomcat不兼容。
- JRE_HOME被启用。
- 冲突的端口号。
如果这不起作用,请参考下面关于Tomcat如何首先启动的文章。
谢谢你一直看到最后。