java web项目包名不能为 com.java , java ,javax ...

今天做了个小Demo,随便取了个包名,就叫做java.filter

这里写图片描述

然后就报 ClassNotFoundException 说找不到我的servlet
然后查啊查,web.xml 配置没错 ,在看tomcat服务器的WEB-INF/lib下的classes也有我的servlet 的类文件啊!
然后在百度的一个角落有人说包名不能以com.java开头,所以改了个包名之后就完美运行了。

这里写图片描述

主要原因:
当写上com.java , java ,又或者 javax 之类的 包的时候 ,每当 jvm运行时,这些包下的类会被 引导类加载器所加载,而我们写的类应该是被应用类加载器所加载,所以在会导致 ClassNotFoundException 。

解决方法:
1. 改包名;
2. 自定义一个 ClassLoader 类加载器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章