天兩夜沒有睡覺——都是JAR包惹的禍!

頭兩天因爲研究需要,對一個北大的師兄寫的一個工具軟件進行修改,問題是很簡單的,可是我改了兩天兩夜都沒有過效果,問題依然存在,用DBUG跟蹤錯誤,是在一個特定的類的特定的行,但是無論怎麼改都不起效果。我甚至把這個類刪除了都沒有效果,我開始懷疑自己對程序的理解了,是不是這個類只是一個幌子哦,真正用來實現的類在別的地方呢?但是翻遍了整個項目中的包,都找不到錯誤所在,起火了兩次,怎麼可能呢?昨天晚上5點實在撐不住了,於是一生氣就把電腦關了,上牀睡覺了。

今天上完兩節課回來,越想越是不對,怎麼可能呢,是不是真的他在學的地方實現的呢?於是我又打開電腦,我做了一個大膽的動作,把主類刪除了!運行,竟然沒有報錯,可以正常運行,功能點都沒有受到影響!

我媽呀,我從來沒有見過這麼牛的程序!索性把所有包都刪除了。運行,天啊,還是能正常運行!是不是見鬼了!可是無神論的我是怎麼也不會相信的。

後來經過一系列大膽的排除,終於找到了問題的所在,說起來還真的很隱蔽:

我是通過原軟件的源代碼重建的工程,是一個SWT的桌面程序,打開工程後很多錯誤,於是就導入他的LIB目錄下的所有JAR包,選擇主項目,運行,一切運行正常。於是開始修改。

沒有想到作者把該程序本身的生成的JAR包也放在了LIB裏面,之後所有運行的都是這個JAR裏的東西,我在外面作的一切修改都就沒有用了。

最讓人氣憤的是:跟蹤錯誤的時候,由於JAR包裏的是。CLASS文件,而對應的類名又能在我上面導入的源文件包中匹配,所有每次都在源文件中定位錯誤,讓我已爲源文件是在工作的。哎!!!

我覺得這個失誤很經典,記下來,以後老了自己笑自己,呵呵。。。。
發佈了33 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章