您现在的位置是:亿华云 > 域名
tomcat启动闪退
亿华云2025-10-04 00:54:21【域名】4人已围观
简介Tomcat记事本方法/步骤下面我先跟大家确认一下问题出现的前提条件本机版本java:1.6.20,tomcat:6.0.32)1)在eclipse里面启动tomcat时都是正常的。2)在系统中配置了
Tomcat
记事本
方法/步骤
下面我先跟大家确认一下问题出现的启动前提条件(本机版本java:1.6.20,tomcat:6.0.32)
1)在eclipse里面启动tomcat时都是闪退正常的。
2)在系统中配置了各种环境变量如下:
JAVA_HOME:H:\DevelopTools\Java\jdk1.6.0_20
CATALINA_BASE:H:\DevelopTools\apache-tomcat-6.0.32
CATALINA_HOME:H:\DevelopTools\apache-tomcat-6.0.32
CLASSPATH:.;%JAVA_HOME%;%JAVA_HOME%\jre\lib;
PATH:.;%JAVA_HOME%\bin;%CATALINA_HOME%\bin;

我们来具体来分析一下问题出现的启动原因及解决办法:
进入tomcat的安装目录(即解压后放置的地方):
看到圈出红色的3个bat文件,一般通过startup.bat启动tomcat时流程是闪退:startup->catalina->setclasspath->catalina
如果这3个bat文件里面有一个出现错误的话就是启动失败。为了找到一闪而过的启动原因得需要我们来看看这3个文件里面到底是什么了

先记事本打开startup.bat,找到最后一句话::end,闪退我们知道end表示结束的启动意思,:end是闪退一个标记,我们在后面加上一句pause (暂停等待的启动意思);
再次执行startup.bat,就会看到如图,闪退当我们按任意的启动键时cmd窗口又是一闪而过了。但是云服务器提供商闪退这已经确定了我们的环境变量都是正确的。

为了更加详细的启动看到信息,我们再来更改一句:找到call "%EXECUTABLE%" start %CMD_LINE_ARGS% 把里面的闪退start替换为run。
再来看看cmd窗口里面输出错误信息了:
error occurred during initialization of vm
could not reserve enough space for object heap
could not create the java virtual machine
我们大体可以理解为:因为程序初始化时请求不到足够的启动内存,导致vm程序退出。

那么既然找到了问题的原因,我们可以来解决这个问题了:申请足够的内存就可以了
如下操作:在catalina.bat中 找到Execute The Requested Command下面的
set JAVA_OPTS把这一句替换为:
set JAVA_OPTS= -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
关于set JAVA_OPTS这句话其实有很多种替换的方式,但是大体上都是一样的
再次启动startup.bat 会看到 我们期待已久的画面啦。
启动成功啦!
通过前面的3篇对Tomcat中startup.bat、catalina.bat、setclasspath.bat文件的解读,云服务器
大家应该对它们有了大体的了解啦,遇到具体的问题我们就可以对症下药了。
我总结一下tomcat经常遇到的几个问题:
1)The JAVA_HOME environment variable is not defined This environment variable is needed to run this program
分析原因:没有在tomcat的配置文件中设置环境变量JAVA_HOME
解决方法:
JAVA_HOME=H:\DevelopTools\Java\jdk1.6.0_20(具体值要以实际的jdk安装路径为准)
CLASSPATH=.;%JAVA_HOME%;%JAVA_HOME%\jre\lib;
或者明确的定义JAVA_HOME环境变量
在setclasspath.bat中开始位置加入以下俩句话:
set JAVA_HOME=H:\DevelopTools\Java\jdk1.6.0_20
set JRE_HOME=H:\DevelopTools\Java\jdk1.6.0_20(具体值要以实际的jdk安装路径为准)
2) 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_HOME的设置中应该指定jdk的路径,不是jre的路径
解决方法:
JAVA_HOME=H:\DevelopTools\Java\jdk1.6.0_20(这里是JDK的安装后路径)
3)error occurred during initialization of vm could not reserve enough space for object heap could not create the java virtual machine
分析原因:因为程序初始化时请求不到足够的内存,导致vm程序退出
解决方法:
设置tomcat的应用内存,在catalina.bat中 找到Execute The Requested Command下面的set JAVA_OPTS把这一句替换为 set JAVA_OPTS= -Xms800m -Xmx800m
或者 set JAVA_OPTS= -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
说明: - Xms为tomcat启动初始内存 - Xmx为tomcat最大占用内存,以上两个参数关系到tomcat承受的访问性能,但也要根据服务器实际内存情况设定。
其他问题不再罗列了,以后遇到后可以自己动手解决了。
源码下载很赞哦!(3)
相关文章
- 因为域名解析需要同步到DNS根服务器,而DNS根服务器会不定时刷,只有DNS根服务器刷新后域名才能正常访问,新增解析一般会在10分钟左右生效,最长不会超过24小时,修改解析时间会稍微延长。
- 一篇关于 Polytree 的随笔
- 教练,怎么在vue项目里写react?
- 编译易出错?应用安装难?Hi3516开发攻略来啦
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
- 高并发中的 限流、熔断、降级、预热、背压!
- 八个字典常用的内置函数,一次性给你总结了!
- Dockerfile,就是那么简单
- 新手可以注册cc域名吗?cc域名有什么特点?
- 面试官:说说你对归并排序的理解?如何实现?应用场景?