该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
可能很多人和我一样,尤其是初学者。在涉及同一个包内两个bean之间调用时,编译出现 “找不到符号”或者“找不到...类”的问题。
今天探索了半个多小时,终于发现了点什么。
例:
加入 BeanA和BeanB 同存在于classes 的myBean文件夹里,BeanB调用BeanA。
1.
//BeanA
package myBean;
public class BeanA
{
//.....
}
//BeanB
package myBean;
//调用 BeanA
import myBean.BeanA;
public class BeanB
{
//....
}
2.先编译BeanA 产生BeanA.class,接着编译BeanB。结果报错:找不到BeanA之类的错误
3.解决问题2:在myBean文件夹里再创建 文件夹 myBean,然后将BeanA.class【移动】到这个myBean文件夹里。然后编译就可以成功。
4.现在产生的两个类文件:BeanA.class 和 BeanB.class 分别存在于 classes\myBean\myBean和classes\myBean里
5.此时如果在jsp页面里使用任何一个 bean 都会出错。解决办法:再将 BeanA.class【移动】回 classes\myBean 文件夹里。
总结在第 3 和 5 步里出现的问题:【自我猜测,嘿嘿,本人也是刚学的新手】
错误分别出现在两个阶段
a.编译阶段:在编译 BeanB.java 时,编译器执行到 import myBean.BeanA; 时,会【从BeanB.java所在的目录】里找 myBean文件夹,找到后接着找 BeanA.class。所以在 classes\myBean 里必须存在一个 包含 BeanA.class 的 myBean 文件夹。
b.执行阶段:servlet在执行jsp页面时,执行到:或者时,会【从classes目录】开始找BeanA.class或BeanB.class。所以此时在 classes\myBean 里必须都存在两个 类文件。
打完收工。