1. 程式人生 > >修改jar包原始碼,成功編譯,應用到專案中

修改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包的原始碼修改,重新引進專案中。

因為寫此部落格時人在公司,上傳不了圖片,所以沒有圖片進行指導。有疑問或需要的童鞋,可以私信我。