社区
Java SE
帖子详情
〓〓当一个java文件变更了,如何确定哪些相关文件需要重新编译?〓〓
zcyxzh1111
2010-09-06 07:45:53
如题,比如我有个包packageXXX下面有三个相关java文件(A是B的成员对象)
另外的一些包import packageXXX.*
当A变更后,哪些需要重新编译呢。B应该要吧,而其他哪些引用packageXXX的包内文件呢,需要重新编译么?
大家最好能告诉我一个原则,按照此原则即可判断任何的情况 ???
...全文
176
13
打赏
收藏
〓〓当一个java文件变更了,如何确定哪些相关文件需要重新编译?〓〓
如题,比如我有个包packageXXX下面有三个相关java文件(A是B的成员对象) 另外的一些包import packageXXX.* 当A变更后,哪些需要重新编译呢。B应该要吧,而其他哪些引用packageXXX的包内文件呢,需要重新编译么? 大家最好能告诉我一个原则,按照此原则即可判断任何的情况 ???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
霜之哀伤
2010-09-07
打赏
举报
回复
搂住是想研究一下原理呢,还是什么
yusixdou
2010-09-07
打赏
举报
回复
只编译改变的就偶ok了
shehun
2010-09-07
打赏
举报
回复
对于开发工具,你把工程clear下,自动就编译了!
Tassdars
2010-09-07
打赏
举报
回复
[Quote=引用 6 楼 humanity 的回复:]
不能说谁改了编译谁,还要看结构性变化,比如,方法里面的一条语句变了,那当然不用重编译其它的类,但是,如果有结构性变化,比如去掉了一个方法或改了参数列表,在源文件夹下的所有的调用者类都需要重新编译。
[/Quote]
不赞同,我觉得楼主的意思是说“必须”,而且假设B调用了A的方法,而A删掉了这个方法,调用B的时候会报错,这是没错,但是重点不是编译,而是你必须得去修改B中调用A的方法的代码,于是B这个类你也修改了,既然你修改了B和A两个类,自然两个类都需要重新编译,自然还是符合“修改谁编译谁”的原则,因为B的代码你不能不改,不是光靠编译不改B的代码就能解决的。
javametro
2010-09-07
打赏
举报
回复
不需要重新编译了,改了哪个就编译好那个。
不过,另外其他的类要是调用了这个类的方法被改了,其他类就也应该改一些东西。
zcyxzh1111
2010-09-06
打赏
举报
回复
[Quote=引用 6 楼 humanity 的回复:]
不能说谁改了编译谁,还要看结构性变化,比如,方法里面的一条语句变了,那当然不用重编译其它的类,但是,如果有结构性变化,比如去掉了一个方法或改了参数列表,在源文件夹下的所有的调用者类都需要重新编译。
[/Quote]
这里又说要编译呢,上面的都说不需要呢 ???
dr_lou
2010-09-06
打赏
举报
回复
ide保持既编译,当然请你选择自动编译。
humanity
2010-09-06
打赏
举报
回复
不能说谁改了编译谁,还要看结构性变化,比如,方法里面的一条语句变了,那当然不用重编译其它的类,但是,如果有结构性变化,比如去掉了一个方法或改了参数列表,在源文件夹下的所有的调用者类都需要重新编译。
oklinsong
2010-09-06
打赏
举报
回复
改哪个类编译哪个类
play_long
2010-09-06
打赏
举报
回复
HAOAO 贴四大皆空拉萨的
ZangXT
2010-09-06
打赏
举报
回复
javac自身就有make功能
closewbq
2010-09-06
打赏
举报
回复
对于开发工具,你把工程clear下,自动就编译了!
Tassdars
2010-09-06
打赏
举报
回复
不需要,哪个类改了你编译哪个就行了,虚拟机是动态地加载类的,也就是说A虽然是B的成员对象,但是A的字节码并没有保存在B中,而是执行到需要用到A这个成员变量的时候,虚拟机就会去classpath下面找这个类文件并加载,如果这个A类已经被改动并编译,它加载的自然就是改动后的类了。
至于同个包的类,都可能没关联,自然就更没必要了。
原则就是改类文件哪个编译哪个,就这么简单,没改动的不需要重新编译。其实如果有IDE的话,根本不用考虑这个问题的,Eclipse会自动编译。
理解kernel Makeiflie
编译
一直在一线做产品研发, 深深明白,看懂
编译
流程,掌握代码是如何
编译
非常重要 做
一个
芯片方案,从拿到资料和代码开始,第一件事就是
编译
代码,解决
编译
问题 另外,看懂代码也必须看懂
编译
过程,哪些参与
编译
,...
java
虚拟机jvm性能调优实战+面试
一、什么是JVM JVM是
Java
Virtual Machine(
Java
虚拟机)的缩写,JVM是一种用于计算设备的规范,它是
一个
虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java
虚拟机包括一套字节码指令集...
Java
内核原理入门到实战(大神必经之路)
Java
语言是体系结构中立的:
Java
程序(后缀为
java
的
文件
)在
Java
平台上被
编译
为体系结构中立的字节码格式(后缀为 class 的
文件
),然后可以在实现这个
Java
平台的任何系统中运行。这种途径适合于异构的...
尹成
JAVA
快速入门
Java
是
一个
强类型语言,它允许扩展
编译
时检查潜在类型不匹配问题的功能。
Java
要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证
编译
程序能捕捉调用错误,这就导致更可靠的程序。 可靠性方面最重要...
Android 10.0 根
文件
系统和
编译
系统
1, 讲解android根
文件
系统结构和组成 2, 讲解android系统镜像的概念和拆包 3, 讲解Android系统源码结构 4, 讲解Android系统
编译
规则 5, 讲解Android系统ADB使用和Log日志调试方法 6, 讲解Android系统Android....
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章