天两夜没有睡觉——都是JAR包惹的祸!

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>头两天因为研究需要,对一个北大的师兄写的一个工具软件进行修改,问题是很简单的,可是我改了两天两夜都没有过效果,问题依然存在,用DBUG跟踪错误,是在一个特定的类的特定的行,但是无论怎么改都不起效果。我甚至把这个类删除了都没有效果,我开始怀疑自己对程序的理解了,是不是这个类只是一个幌子哦,真正用来实现的类在别的地方呢?但是翻遍了整个项目中的包,都找不到错误所在,起火了两次,怎么可能呢?昨天晚上5点实在撑不住了,于是一生气就把电脑关了,上床睡觉了。

今天上完两节课回来,越想越是不对,怎么可能呢,是不是真的他在学的地方实现的呢?于是我又打开电脑,我做了一个大胆的动作,把主类删除了!运行,竟然没有报错,可以正常运行,功能点都没有受到影响!

我妈呀,我从来没有见过这么牛的程序!索性把所有包都删除了。运行,天啊,还是能正常运行!是不是见鬼了!可是无神论的我是怎么也不会相信的。

后来经过一系列大胆的排除,终于找到了问题的所在,说起来还真的很隐蔽:

我是通过原软件的源代码重建的工程,是一个SWT的桌面程序,打开工程后很多错误,于是就导入他的LIB目录下的所有JAR包,选择主项目,运行,一切运行正常。于是开始修改。

没有想到作者把该程序本身的生成的JAR包也放在了LIB里面,之后所有运行的都是这个JAR里的东西,我在外面作的一切修改都就没有用了。

最让人气愤的是:跟踪错误的时候,由于JAR包里的是。CLASS文件,而对应的类名又能在我上面导入的源文件包中匹配,所有每次都在源文件中定位错误,让我已为源文件是在工作的。哎!!!

我觉得这个失误很经典,记下来,以后老了自己笑自己,呵呵。。。。

你可能感兴趣的:(工作)