1. 程式人生 > >將JAR包反編譯,修改後重新打包(轉)

將JAR包反編譯,修改後重新打包(轉)

  有道是,知其然才知其所以然。有時候,我們必須讀取jar裡的打包的類。而有時還有可能要對它進行小量修改,使之適用於自己的非凡需求。

前期預備
  Java反編譯工具:
  JGUI  http://pan.baidu.com/s/1o6xCtsQ
  壓縮工具:
  Winrar

開始
  1. 將jar包解壓
  我們可以使用winrar工具將jar解壓到指定目錄

  2. 反編譯class
  使用 Java 反編譯工具,將class檔案反編譯為java檔案。(大多數反編譯工具只提供單個class檔案的反編譯,這裡推薦"小穎JAVA原始碼反編譯"工具,可以反編譯一個目錄下的所有class檔案)

  3. 構建專案
  我們將反編譯後的java檔案設為專案的原始檔目錄。
  將jar,及jar所需要的其它lib,作為libraries加入專案中,這樣可以保證我們的java檔案可以編譯。

  4. 對反編譯的java進行修改
  通過反編譯的java檔案,可能還有錯誤,不能編譯通過,在不影響作者原始意圖的前提下,我們必須對它進行小量修改,保證可編譯通過。
  保證java檔案可以編譯通過後,我們再在其基礎上進行修改,使之符合自己的需求。

    
  5. 編譯修改的java
  編譯修改後的java檔案,注重的是,最好只編譯修改的單個java檔案。
  編譯完成後,我們進行測試,保證修改無誤。因為JVM會先找尋classes目錄下的class檔案,並率先加入,這樣我們修改編譯後的class檔案,便是測試時使用的class檔案。
  重複這個過程,直至java達到我們的目的。

    不需要在命令列編譯,將專案反編譯成.java後將整個工程匯入到Eclipse中,直接在Eclipse中檢視.class檔案

  6. Jar打包
  將修改生成後的class檔案,替換我們將jar解壓縮目錄下的相應class檔案,重新打包生成jar。
  我們可以使用jar命令進行打包(進入目錄後執行jar -cvf manageRC.jar .

)也可以使用winrar工具進行打包。使用winrar工具打包時,要注重選擇壓縮檔案格式為zip,並將生成的壓縮包檔案的字尾名設定為jar。

  替換原來的jar。再進行最後一次測試。