对于tomcat出现一闪而过或者报错,有以下几个问题:
1,jdk环境变量配置错误
2,端口被占用
解决方案:
第一步:端口被占用了则在tomcat/conf/server.xml中更改端口即可
如果更改端口后还是不行,则检查本机是否已安装tomcat,因为我是在别人电脑上装的tomcat,所以遇到了这种情况,把别人安装的tomcat服务禁掉或者就用别人的tomcat算了。如果没有安装tomcat,可以通过命令来检查你这个端口是否被占用了,然后杀掉这个进程就可以了
杀进程操作如下:
找到进程,把进程杀掉,应该就可以运行了,然后你可以用netstat -aon | finstr "某个端口"
的方式找个空闲的端口用,这样就可以彻底解决端口被占用的问题。
第二,如果端口没有被占用,还是一闪而过,这样就是你环境变量没有配置好,或者配置的有多余情况。
首先配置jdk6的环境变量,百度搜一下就可以了,除了配置JAVA_HOME,PATH之外,不要忘记配置CLASSPATH,这个很重要。
第三,jdk6环境配置好之后,运行tomcat下的startup.bat,如果还是一闪而过,那就打开startup.bat这个文件编辑,在最后一行写上PAUSE,保存后,再双击startup.bat
遇到:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
证明你的jdk环境配置有问题,
解决方案1:
Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat,只要在setclasspath.bat的开头声明环境变量(红色两行)就可以了,原因是后来较新版本安装完不会自动登记环境变量JAVA_HOME,JRE_HOME。
给setclasspath.bat的开头添加红色标记部分,如下:
rem ---------------------------------------------------------------------------
rem Set CLASSPATH and Java options
rem
rem $Id: setclasspath.bat 505241 2007-02-09 10:22:58Z jfclere $
rem ---------------------------------------------------------------------------
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20
set JRE_HOME=C:\Program Files\Java\jre6
rem Make sure prerequisite environment variables are set
if not "%JAVA_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
echo At least one of these environment variable is needed to run this program
goto exit
这样在每次运行startup.bat时就自动注册了JAVA_HOME,JRE_HOME。
运行startup.bat,提示“信息:Server startup in xxxxx ms” OK 大功告成。
解决方案2:如果上个方法还是不对的话,请删除上面加上的东西,这是你打开配置环境变量的窗口
检查环境变量里面是否有重复配置tomcat或者jdk的情况,首要关注一个变量CATALINA开头的,把这个变量备份删除,如果有和CATALINA开头的变量值一样的变量也备份删除,这样在运行tomcat,应该不会一闪而过了。