比较坑的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 零基础学Java(5)输入与输出

    零基础学Java(5)输入与输出输入与输出读取输入要想通过控制台进行输入,首先需要构造一个与"标准输入流"System.in关联的Scanner对象。//创建输入流对象Scannerin=new

    2022年7月29日
  • Java HashSet的实现原理详解

    Java HashSet的实现原理详解HashSet是JavaMap类型的集合类中最常使用的,本文基于Java1.8,对于HashSet的实现原理做一下详细讲解。(Java1.8源码:http://docs.oracle.com/javase/8/docs/api/)一、HashSet实现原理总结HashSet的实现原理总结如下:①是基于HashMap实现的,默认构造函

    2022年10月29日
  • 野生前端的数据结构基础练习(5)——散列

    野生前端的数据结构基础练习(5)——散列野生前端的数据结构基础练习(5)——散列

    2022年4月20日
  • java除法保留两位小数_JAVA除法保留小数点后两位的两种方法

    java除法保留两位小数_JAVA除法保留小数点后两位的两种方法1.利用Math.round()的方法:两个int型的数相除,结果保留小数点后两位:inta=1188;intb=93;doublec;c=(double)(Math.round(a*100/b)/100.0);//这样为保持2位打印结果:c=0.12c=newDouble(Math.round(a*1000/b)/1000.0);//这样为保持3位打印结果:c=0.0122.另一种办法i…

    2022年5月10日
  • ReleaseMutex函数

    ReleaseMutex函数ReleaseMutex函数的功能是释放互斥对象的控制权函数原型BOOLWIANPIReleaseMutex(HANDLEhMutex);返回值BOOL,TRUE表示成功,FALSE表示失败。参数表hMutex:HANDLE,制定一个互斥体的句柄。注释一个线程释放了互斥对象的控制权后,如果其他进程在等待互斥对象置位,则等待的线程可以得到该互斥对象,等待

    2022年6月26日
  • openEuler操作系统安装在vmware上[通俗易懂]

    openEuler操作系统安装在vmware上[通俗易懂]openEuler安装说明:本次安装是基于宿主机AMD的x86_64架构的cpu,win10操作系统下安装客户机(虚拟机)openEuler操作系统,准备:基本环境:VMWareWorkstation14pro,openEuler操作系统镜像。首先,下载openEuler操作系统镜像https://repo.openeuler.org/openEuler…

    2022年5月25日

发表回复

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

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