如何編輯jar包中class文件呢??


1.在有源碼的情況下:就那hibernate-core-4.1.10.Final.jar這個jar來說吧,我想修改里面的org\hibernate\cfg\PropertyContainer.class文件

       1) 在Myeclipse中建立一個web工程(web_test_5)

       2)將該class文件(PropertyContainer.class)  對應的 java文件(PropertyContainer.java)  放入該web工程的src目錄下(建好對應的包org.hibernate.cfg,把源文件放入該目錄)  

           

       說明PropertyContainer.class源文件所在的目錄:hibernate-release-4.1.10.Final\project\hibernate-core\src\main\java

       3)將PropertyContainer.class所在的jar包Build Path到該工程中(因為該java文件可能會與其他的class文件相關聯,所以要引入對應的jar包)

       4)打開該java文件,接下來你想怎么改就怎么改,改好了保存(保存就行了,這樣Myelipse就是自動幫你編譯該java文件,並生成字節碼放到指定的目錄,

 嘿嘿,原來保存好了java文件,Myeclipse就會自動幫我們編譯,我今天才發現)

       5)到找到對應的web工程web_test_5所在的目錄,到web_test\WebRoot\WEB-INF\classes\目錄下找該java文件對應的class文件

       6)解壓源碼所在的jar包,將該其中PropertyContainer.class替換掉就行

       7)然后再打包成jar文件就行了

2.在沒有源碼的情況下,我們可以使用Jclassbin軟件,Jclassbin可以用於改變class出的輸出,但是對於改變類好像不行,因為我們不能往Jclassbin中import,所以我們如果用Jclassbin往一個jar包中java中的某個添加一個類后,在用這個jar包時就會出問題,

可能有辦法import吧,可能是目前我還不知道吧,如果哪位大蝦知道 請留言哦!(有機會再研究一下吧)

 1)說明:開始我是用的DJ Java Decompiler反編譯 把我需要修改的那個PropertyContainer.class文件反編譯出來把代碼保存到Propertycontainer.java

 查看反編譯得到的java文件和Hibernate提供的jar文件中java文件有點不同,比如Hibernate中java文件使用了泛型,你用這個軟件反編譯得到的文件就沒使用泛型

,不知道什么情況,反正最后放棄用這個軟件

 2)說明:然后直接在dos里面用javac PropertyContainer.java編譯

 問題來了..

 因為引用了很多其他jar下面的方法 而且PropertyContainer.java有package

 3)使用Jclassbin

 打開Jclassbin,界面效果如下

 

 

 

 

  ·


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM