[開發技巧]對jar包進行再次修改

來源:互聯網
上載者:User
樊歡 java愛好者。
    Email :heydaymail@hotmail.com
    Blog :http://heyday.blogone.net
    2005-6-19

引言
    在學習和開發JAVA項目中,我們經常會用到第三方提供的一些jar。使用這些第三方工具包,可以提高我們開發的效率,縮短開發的時間。有的第三方工具,提供詳細的使用說明和原始碼,有時有的卻不提供原始碼,使用說明也不是很詳細,這對我們使用就非常不方便。
    有道是,知其然才知其所以然。有時候,我們必須讀取jar裡的打包的類。而有時還有可能要對它進行小量修改,使之適用於自己的特殊需求。

前期準備
    Java反編譯工具:
        強烈推薦,小穎JAVA原始碼反編譯系列專家1.4終極版。
    壓縮公用程式:
        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達到我們的目的。

6. Jar打包
    將修改產生後的class檔案,替換我們將jar解壓縮目錄下的相應class檔案,重新打包產生jar。
    我們可以使用jar命令進行打包,也可以使用winrar工具進行打包。使用winrar工具打包時,要注意選擇壓縮檔格式為zip,並將產生的壓縮包檔案的尾碼名設定為jar。

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

總結
    由於Java的跨平台性,使得java的class檔案可以進行反編譯,我們可以對jar檔案進行修改,使之適用於自己的需求。
    對jar檔案進行修改,我們必須首先獲得jar開發人員的同意。

    對jar檔案進行修改,首先必須對反編譯的java檔案比較熟悉。這就必須有良好的代碼閱讀能力,清楚作者的技術架構和開發設計思想。如果沒有把握,最好能與jar開發人員聯絡,提出你的需求。

    對於某些java開發人員來說,並不希望將自己辛辛苦苦寫的code公佈於眾,為了避免他人反編譯,可以使用混淆器,但也只是增加代碼閱讀的困難性。如果不是作為商業運用,我們還是希望開發人員能夠提供原始碼,互相學習探討。

關於作者
    樊歡 java愛好者,您可以通過heydaymail@hotmail.com與我聯絡。
    Email :heydaymail@hotmail.com
    Blog :http://heyday.blogone.net

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.