eclipse的Web项目java文件没有重新编译
???? 今天,兴趣盎然的翻出前几年写的一个web项目。由于之前的登录验证很复杂,除密码及验证码外还需要硬件绑定认证。为了更简单快速的把系统运行起来,就修改了登录验证那块的代码。像往常一样重新部署修改后的项目,本以为能很快看到那久别的熟悉面孔。但悲催的事情发生了,任由我怎么输入就是登录不进去。
?
???? 查找这类问题最简单有效的办法dubbger,跟踪中发现修改的代码没起作用。第一反应是Java compiler没有配置好,导致修改的文件没有自动编译和部署。于是,仔细检查各配置选项,结果都没问题。再想会不会是缓存导致的,于是删除了/WEB-INF下的classer目录以及web server中部署好的项目文件。
?
???? 原以为这样调整后所有文件会重新编译,按使用原理所有java文件确实应该重新编译,但事实却常常喜欢和我们开玩笑,一个文件都没有编译。项目中/WEB-INF目录下删除的classer文件夹没有被重新建立,说明Java compiler根本没执行。百思不得其解时google了一下,有人也碰到类似问题,说是java build path中如果有引用错误时也会导致该种现象。
?
???? 检查后发现java build path下的Libraries中有个jar文件的目录不存在,编辑更换正确的文件位置后重新部署再试果然一切正常。至此,终于找到困扰半个多小时的问题原来出在这里,真得感谢google为我们提供了搜索引擎这样的好产品。不然,由于时间过长,一些小变动造成的问题,真一时半会难以发现。
?
???? 本来很简单的一个问题,一两行就能记录问题是什么,怎么解决的。但还是写下了上面几段文字,目的是记录解决这一问题时自己的思路,以便今后碰到类似问题作为参考。简单总结下,eclipse中碰到java文件没有编译的问题,通常由二个地方引起:
???? 1、java compiler选项的设置
????????? 这里的问题大多是选项漏选,导致部分代码修改后不会重新编译。
?
???? 2、java build path选项的设置
????????? 这里的问题大多类似上面描述的,jar文件引用错误或jre版本不对等等。
?
具体java compiler和java build path各个设置选项的含义可以参考eclipse附带的帮助文档。
?
?