为什么在main函数中run as application,执行正常;而通过tomcat发布后,就报错classnotfound?

为什么在main函数中run as application,执行正常;而通过tomcat发布后,就报错classnotfound?

明明两种方式的java代码是一样的啊,只是一个在main函数中,一个不再main函数中而已。

而包含这个class的jar包明明已经引入了。




tomcat有自己的classloader,而不是时候jre即Java虚拟机中的classloader,它自定了classloader。
这也是为什么在eclipse中,一样的代码,1)一个放入main函数,在eclipse中右击-run as application  2)一个放入action中即不用main函数那种,在eclipse中启动tomcat运行,不会报classnotfound。

因为在eclipse中run as application使用的是jre的classloader,而tomcat有自己的classloader,并且执行原理及加载顺序,是有区别的。


https://zhidao.baidu.com/question/263960904238373645.html



tomcat官方文档:

http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值