启动tomcat时⼀闪⽽过解决⽅法
【前⽂】
在实际开发中⼀般都是eclipse+tomcat(也许还会⽤到tomcat的插件),我们只需要在eclipse中单击servers上的按钮就可以成功启动tomcat 了,
但是如果想在tomcat的安装⽬录下双击startup.bat启动时却⼀闪⽽过了。这是为什么呢(tomcat启动失败),马上就带⼤家看看具体的原因。
⼯具/原料
Tomcat
记事本
⽅法/步骤
1.
下⾯我先跟⼤家确认⼀下问题出现的前提条件(本机版本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;
2.
我们来具体来分析⼀下问题出现的原因及解决办法:
进⼊tomcat的安装⽬录(即解压后放置的地⽅):
看到圈出红⾊的3个bat⽂件,⼀般通过startup.bat启动tomcat时流程是:startup->catalina->setclasspath->catalina
如果这3个bat⽂件⾥⾯有⼀个出现错误的话就是启动失败。为了到⼀闪⽽过的原因得需要我们来看看这3个⽂件⾥⾯到底是什么了
3.
先记事本打开startup.bat,到最后⼀句话::end,我们知道end表⽰结束的意思,:end是⼀个标记,我们在后⾯加上⼀句pause (暂停等待的意思);
再次执⾏startup.bat,就会看到如图,当我们按任意的键时cmd窗⼝⼜是⼀闪⽽过了。但是这已经确定了我们的环境变量都是正确的。
4.
为了更加详细的看到信息,我们再来更改⼀句:到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程序退出。
5.
那么既然到了问题的原因,我们可以来解决这个问题了:申请⾜够的内存就可以了
如下操作:在catalina.bat中到Execute The Requested Command下⾯的
eclipse安装教程tomcatset JAVA_OPTS把这⼀句替换为:
set JAVA_OPTS= -server -Xms800m -Xmx800m -XX:MaxNewSize=256m
关于set JAVA_OPTS这句话其实有很多种替换的⽅式,但是⼤体上都是⼀样的
再次启动startup.bat 会看到我们期待已久的画⾯啦。
启动成功啦!
【后⽂】
1. 通过前⾯的3篇对Tomcat中startup.bat、catalina.bat、setclasspath.bat⽂件的解读,
⼤家应该对它们有了⼤体的了解啦,遇到具体的问题我们就可以对症下药了。
2.
我总结⼀下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安装路径为准)
3.
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的安装后路径)
4.
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承受的访问性能,但也要根据服务器实际内存情况设定。
其他问题不再罗列了,以后遇到后可以⾃⼰动⼿解决了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论