Tomcat无法编译加载class文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat无法编译加载class文件相关的知识,希望对你有一定的参考价值。
第一次部署项目正常运行,后面修改了java文件,tomcat则无法加载,重新部署,重新启动都不行!
拜托,我都说了手工部署,重启服务器都无效,还要热部署,问题是现在为什么不加载更新过的class或者更新过的java没有被编译
能启动多个虚拟机?如果是这样的话,tomcat是无法启动的!一个是myeclipse的虚拟机,一个是tomcat的环境,目前我没有使用第三个虚拟机!
追答java进程,是java进程,搞错了,把多余的那个关掉!具体请参照图片!
追问晕死。。。跟你解释不通。。。怎么可能会有多余的进程呢?俩个软件,启动时才会有java进程,如果没有关闭的话,tomcat和myeclipse是无法重新启动的,既然俩个软件正常运行了,就不会有多的了,ok?
参考技术B 我建议你将开发环境先关闭,在打开试试,有时候是由于加载的次数过多导致的一些问题,再者你可以将tomcat中的class文件先全部删除,再重新加载尝试一下。很多时候不是大问题导致的,是一些环境本身的问题。追问将tomcat的工作目录删除确实能解决这个问题,可是你不会叫每次改一个东西然后测试之前都去删工作目录吧,很影响工作效率,还有情绪
参考技术C 修改了java文件后,要重新编译后,才能产生最新的class文件,之前的class文件可以手工删掉。你的情况可能就是没有编译产生新的class文件。tomcat一直加载的是你修改前的class文件追问情况是这个情况,可是你总不能叫我每次修改后都去删class文件吧,影响工作效率呀!我知道临时解决的方法,我现在需要的是,让tomcat正常
参考技术D 也就是你的tomcat能启动,但是无法加载你的项目?是IDE工具自动部署的?部署成功,但是tomcat不给你加载?报错怎么报的啊追问是这个情况,ide,tomcat都正常,能运行,项目也能部署,也能编译,也能运行,,问题出在修改java文件后,重新部署,编译,在运行项目时,还是加载原来的class的,也就是说修改后的java没有编译或者说编译了没有加载到tomcat?
追答这个啊,你把work下面的文件给删了,tomcat就会重新编译了,这个算不上错误,可能是缓存导致的。
追问老大,看看楼上的,我都说了我知道怎么临时解决这个问题,但是我不能每次修改后都去删work吧,老大,帮忙找个能不这么麻烦的
追答额,tomcat的配置文件中能够配置的啊,更改java后也自动编译,有这个选项的。。
追问拜托,我都说了手工部署,重启服务器都无效,还要热部署,问题是现在为什么不加载更新过的class或者更新过的java没有被编译
追答tomcat的bin下有个startup.bat,编辑这个文件,在call "%EXECUTABLE%" start %CMD_LINE_ARGS%之前,加上deltree %cd%\work /s/e
这样,在tomcat启动之前,自动删除work下得所有文件
在startup.bat中的call之前加上deltree %cd%\work /s/e
这样在启动之前就会吧work里的东西全删了
在startup.bat中的call之前加上deltree %cd%\work /s/e
这样在启动之前就会吧work里的东西全删了
在startup的call之前加上deltree %cd%\work /s/e
这样就在启动之前自动吧work清空了
应该是rmdir /s/q %cd%\work
第5个回答 2011-11-01 是不是java的编译级别一致。追问什么意思?仔细说说
为啥在eclipse中修改JSP后tomcat自动重启?
参考技术A tomcat会每隔一段时间查询jsp的版本是否一致,自动加载,所以修改jsp后,tomcat会自动重启,不用用户重新发布工程。tomcat启动后class文件会接受请求加载到jvm中。而对jsp第一次请求时,会先编码成对应的.class文件加载进来。以后每一次请求tomcat容器要检查jsp的版本,如果与前一次不一样,则会自动再次编码并加载.class文件。 参考技术B 你修改jsp,tomcat会重新编译成servlet,然后jvm加载他,有时候就会触发tomcat重新加载整个应用,并不是重启。当加载的次数多了,就有可能造成permgen内存溢出
以上是关于Tomcat无法编译加载class文件的主要内容,如果未能解决你的问题,请参考以下文章