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,界面效果如下
·