修改jar包原始碼,成功編譯,應用到專案中
前言:
在公司專案中,想要修改專案中所引用的開源jar包的原始碼。在網上百度了許久都沒有一個比較好的方案。現在本人已經研究出來,本著記錄並共享的原則,現在寫成部落格釋出,希望對大家有幫助。
正文:
在本次修改jar包原始碼中,本人發現了兩種應用方式,現在一一為大家講解。
方式一:
1、找到jar包中你想要修改的類
在本步驟中,若此jar包是開源的,並且已經把原始碼(src.zip) attached到專案中(已經可直接在專案中檢視原始碼),那就方便許多。若jar包不開源,可能需要用到‘jd-gui’這樣的反編譯器,反編譯出jar包的原始碼。
2、在專案目錄下,建立一個與所修改類同名的包名
本步驟的意義在於,如果我們所建立的包名不同於原始碼中的類所在的包,我們取得我們想修改的類的程式碼時會報錯。
3、在包下建立一個同樣類名相同的類,將原始碼全部複製到此類中。
在此步驟下,就需要第一步的支援,我們需要能取到我們想修改原始碼的類。
此時這個類所在包與原始碼相同,不會報錯
4、將想要修改的地方在此處進行修改,儲存,即可。
PS:本方法已經經過試驗,專案執行時,本類完全可以替代jar包中的同名類,不會造成任何問題。已經在生產上正式執行一段時間,沒有任何問題。
方式二:
方式二的前四個步驟完全如果方式一,接下來進行第五步驟。
方式二的目的在於完全修改的修改jar包,而不用在我們的程式中重複建立相同的程式碼。
5、修改完我們所需要的類(.java檔案)後,用IDE進行編譯。可以在編譯後的目錄中得到此類的.class檔案。
6、將我們所需的jar包解壓出來,找到我們想要修改原始碼的.class檔案。
7、將我們修改、編譯後得到的.class檔案替換jar包目錄下的.class檔案。
8、將解壓後的jar包重新壓縮成ZIP格式的壓縮包
9、將壓縮包的字尾名更改為.jar。
10、完成jar包的原始碼修改,重新引進專案中。
因為寫此部落格時人在公司,上傳不了圖片,所以沒有圖片進行指導。有疑問或需要的童鞋,可以私信我。