比较坑的Tomcat闪退(win7)

比较坑的Tomcat闪退(win7)**我的tomcat7用了好久了,可以说是最开始学习javaweb的时候下载的,看着别人的视频里一顿配置,于是我也跟着一顿配置,虽然当时完全不知道在干什么,感觉好厉害的样子!然后直到有一天,你可能把电脑里一些没什么卵用的自己瞎做的项目删除了之后,然后你启动你的tomcat的startup.bat的时候,让人无语的时候来了,只见刷的一下cmd窗口就飞过,然后就没了,你还是一脸蒙逼,什么也不知道。。。…

大家好,又见面了,我是你们的朋友全栈君。

**我的tomcat7用了好久了,可以说是最开始学习javaweb的时候下载的,看着别人的视频里一顿配置,于是我也跟着一顿配置,虽然当时完全不知道在干什么,感觉好厉害的样子!然后直到有一天,你可能把电脑里一些没什么卵用的自己瞎做的项目删除了之后,然后你启动你的tomcat的startup.bat的时候,让人无语的时候来了,只见刷的一下cmd窗口就飞过,然后就没了,你还是一脸蒙逼,什么也不知道。。。。。

这个闪退很让人崩溃,有的时候很无语的就是单独启动Tomcat会闪退,而在Eclipse中用这个Tomcat却能正常工作,WFK!!!,关键你还不知道是什么错误,不知道从哪里入手,相信绝大多数人的想法!其实吧,大概可以从几个方面入手;

第一(很重要):一定一定要检查你的环境变量JAVA_HOME和JRE_HOME(最好配置一下CLASSPATH)有没有错误,我就是有一次JRE_HOME中有个地方打错了,然后我在PATH那里用的是;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,这样居然一直用了好久没出错,用tomcat的话貌似会检测这些环境变量来找到jdk的那些jar包的。。

第二(不推荐):这是网上绝大多数人解决问题的做法,就是在startup.bat或者setclasspath.bat等这些启动文件中去指定JAVA_HOME、JRE_HOME或者TOMCAT_HOME这些路径,这样我是极其不推荐的!因为这样做有的时候很坑爹,因为一旦你以后要换jdk,你看看你需要改多少东西。。。。。环境变量那里去改就不说了,然后你还要在这里一个个启动文件中去改,有一个地方没改肯定会出问题,你还不知道到底是哪里出问题了,于是你又要重头到尾再看看哪里有遗漏的地方。。。简直日了狗了

第三(可以试试):这个方法就是打开startup.bat文件,在文件的最后一行添加PAUSE,这个命令可以给你一个简单的错误提示,一些小错误可以在黑窗口看到,比如哪个环境变量有错误什么的(记住错误解决之后要将这个PAUSE去掉啊。。)**
在这里插入图片描述

第四(推荐):如果你在第三步中黑窗口显示按任意键继续,恭喜你,你只适合第四步!这一步就是看日志了,每个tomcat都有一个存放日志文件的目录,那里记录着你每次开启tomcat的信息,根据时间打开找到你刚刚启动失败的日志文件,然后打开日志文件(从最下面开始看,最下面的是最新的),就可以慢慢百度查了。。。我就碰到过一个闪退的错误:
在这里插入图片描述
错误如下:

cument base D:\java\java_workapace\Testtomcat\WebContent does not exist or is not a readable directory
	at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:136)
	at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:5286)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5477)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

七月 07, 2019 9:29:54 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1241)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	... 6 more
Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5478)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 6 more

七月 07, 2019 9:29:54 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1241)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:705)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1702)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1692)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1249)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	... 6 more

看第一行 cument base D:\java\java_workapace\Testtomcat\WebContent does not exist or is not a readable directory,说的是我这个目录下面有个目录不存在,于是我想了一下,妈耶!这目录我在刚用tomcat的时候瞎搞,在tomcat中的server.xml配置文件中配置了一个虚拟目录,后来清理的时候把这个目录删了。。。。。难怪总是报错,坑啊!!!把这个docBase的内容删了,好了,世界又是如此美好!
在这里插入图片描述
第五(可能性最低):千万别是因为你的jdk和Tomcat版本的问题那就无语了。。。。那你就只能重新装某一个了,这是真的没办法!

就这么多吧!我的这个tomcat一直没舍得删除,就是要看看到底是什么错误,啊哈哈哈!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139176.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS6 更换yum源的方法

    CentOS6 更换yum源的方法

    2021年6月4日
    143
  • Swift

    Swift

    2021年12月8日
    62
  • redis分布式锁原理面试(数据库索引用的什么数据结构)

    业务背景:后台定时任务刷新Redis的数据到数据库中,有多台机器开启了此定时同步的任务,但是需要其中一台工作,其他的作为备用,提高可用性。使用Redis分布式锁进行限制,拿到锁的机器去执行具体业务,拿不到锁的继续轮询。分布式锁原理分布式锁:当多个进程不在同一个系统中,多个进程共同竞争同一个资源,用分布式锁控制多个进程对资源的互斥访问。采用Redis服务器存储锁信息(即SET一个Key表示已加锁),可以实现多进程的并发读锁的状态,如果没有锁,则只允许一个进程加锁。Redis分布式锁实现的关键点:

    2022年4月15日
    75
  • python找出肇事者_python100例详解

    python找出肇事者_python100例详解抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

    2022年7月29日
    8
  • callee和caller的区别_caller中文

    callee和caller的区别_caller中文Javascriptarguments.callee和caller的区别一、callee  在学习callee之前,需要先学习arguments。  arguments:含义:该对象代表正在执行的函数和调用它的函数的参数。 语法: 1 [function.]arguments[n]   参数:function:当前正在执行的Func…

    2025年6月20日
    0
  • 单调栈总结_进栈和出栈的算法思想

    单调栈总结_进栈和出栈的算法思想单调栈总结目录定义性质功能例题HDU1506HDU5033PKU2796PKU3250定义性质下面引自百度百科单调递增或单调减的栈,跟单调队列差不多,但是只用到它的一端,利用它可以用来解决一些ACM/ICPC和OI的题目,如RQNOJ的诺诺的队列等。单调栈是一种特殊的栈,特殊之处在于栈内的元素都保持一个单调性。假设下图是一个栈内元素的排列情况(单调递增的

    2022年9月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号