您的位置:首页 > 编程语言 > Java开发

Eclipse的project的clean操作什么意思?

2017-06-21 16:00 661 查看
Eclipse的project的clean操作什么意思?



疑问1:每次在Eclipse开发的时候,修改了java文件,只需要重新启动Eclipse的server中的tomcat即可,tomcat会编译java文件成class文件并替换掉之前对应的class吗?

tomcat当然不会。

原以为:

你每次重启Eclipse中的tomcat的时候,其实是①Eclipse重新发布工程到tomcat(java编译成class并替换之前对应的class,就是在这个阶段完成的),②并启动tomcat的过程。

真相:



所以每次在Eclipse开发的时候,修改了java文件,只需要重新启动Eclipse的server中的tomcat即可。

这中间的过程是:

第一步: ctrl+s或者点击保存java代码,Eclipse就会自动编译class,并写入①workspace中工程所在位置的build\classes(如果没有改class,则写入;如果有改class,则替换并写入)。如:F:\Eclipse\workspace\testProject\build\classes\org\XXX\test。②tomcat下的工程所在位置的web_inf \ class中class对应的位置,如F:\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp13\wtpwebapps\testProject\WEB-INF\classes\org\XX\test。

注意:如果java文件没有任何修改,点击保存或者ctrl+s,Eclipse是不会自动编译class的。

第二步:启动tomcat。

所以tomcat在这期间什么都没干,全是Eclipse干的。tomcat只负责startup.bat就行了。

疑问2:既然Eclipse会编译java文件成class文件并替换掉之前对应的class,那么为什么还要clean呢,clean的作用不也是删掉class文件,然后重新编译吗?

由于eclipse的编译是基于时间戳的判断机制的。因此当你按build   all的时候有些eclipse认为时间戳没有改变的类不会被编译。

使用Build命令只会编译时间戳没有改变的类;

但是时间戳是个什么东西,网上的资料很少,所以无从知晓。不了了之

疑问3:所以要怎么确定某个java是不是被编译并替换掉之前的class了,即我的java代码明明修改了,为什么发布后工程的功能却还是修改前的老样子,好像并没有修改?

去tomcat下看发布的class文件,这个就是tomcat执行的class,然后反编译成java文件,看看改java文件是不是修改后的,如果不是,说明编译没有成功,执行clean(即删掉之前的class,然后重新编译并写入)。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: