在我们使用eclipse做web调试的过程中,一般只需要在eclipse修改程序,然后在浏览器刷新就能发现文件更改,今天突然发现保存后不能更改了。
1、检查tomcat中的文件发现文件没有更新。
2、检查eclipse中的 project-> Build Automatically 发现已经打了勾。
3、检查eclipse中的其他设置,始终没有发现问题
4、通过project -> clean 发现可以更新。
到底是什么问题呢? 各种烦躁。
问了一下同事,他说了一个原因说,eclipse的更新机制是通过文件的修改时间来进行判断,如果更改时间比现在时间要晚,那么会更新,如果时间超前,那么文件是不更新的。
再次进行检查
1、查看eclipse下面的文件,时间和系统时间一致,修改后时间发生变化。
2、检查tomcat下面的文件,发现比系统时间超前,修改后确实没有发送变化。
为什么会这样呢? 不清楚,百度一下吧,找了两种修改tomcat的jvm的方式。
通过在eclipse 中 server -> tomcat -> jdk 中增加
-Xms128m
-Xmx512m
-Dfile.encoding=UTF8
-Duser.timezone=GMT+08
保存后,再次修改,发现修改时间已经发生变化。
总结:回忆了一下,eclipse以前一直是没有问题的,今天怎么会突然出问题?原来昨天安装了jdk1.7 ,以前默认的jdk版本是1.6,有可能是jdk的版本发生了变化,导致jvm中的时区产生了差异,在每次修改后会根据另一个时区(观察了一下比原来的时间早了一个小时,猜测应该是日本时间)生成修改时间。如果同事没有这个提示,找上几天恐怕我也不能发现什么问题,看来还是要了解系统的工作原理才能更方便的进行排错。