JAVA编译时的路径问题??

FengPrince 2013-03-12 03:20:49
假设A.java中有一个类AAA,即文件名与类名不相同!
A.java中引用了class B。在A.java的同一目录下已经存在B.class,还存在B.java。
那么在生成A.java的字节码AAA.class时直接调用B.class,而不再考虑重新编译B.java!

但如果删除B.java文件将A.java改成B.java,那么在编译生成AAA.class文件时又不会直接调用B.class,而是重新编译B.java,于是提示class B找不到!

我不明白的是为什么第一种情况直接使用B.class,第二种情况又不用B.class而是重新根据B.java来生成??

望高手指点,多谢!!
...全文
152 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FengPrince 2013-03-12
  • 打赏
  • 举报
回复
引用 1 楼 yyw6637 的回复:
因为你改了A.java,所有A.java会重新编译,里面包含的AAA也会重新编译,但是找不到B.java源文件,所以报错
我已经解决了,原因是JAVA在编译时会检查B.java与B.class哪个新,如果前者新就重新生成B.class;如果后才新就直接使用B.class! PS:怪自己眼高手低,之前想到过这一原因,但认为JAVA编译器应该不会这么智能,以为只有IDE集成的工具才会使用makefile如此管理源文件!原来JAVA编译器会这么做,汗。。。。
yyw6637 2013-03-12
  • 打赏
  • 举报
回复
因为你改了A.java,所有A.java会重新编译,里面包含的AAA也会重新编译,但是找不到B.java源文件,所以报错

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧