修改及反編譯可運(yùn)行Jar包實(shí)現(xiàn)過(guò)程詳解
將可運(yùn)行Jar包,反編譯成項(xiàng)目,修改代碼,再次編譯,打包。
需要工具:jd-gui、myeclipse
具體步驟:
1、使用jd-gui打開(kāi)原始的Jar包,選擇File-->Save All Sources,會(huì)生成一個(gè)zip壓縮包
2、解壓這個(gè)壓縮包,生成一個(gè)文件夾,可以看到文件夾里所有的class文件變成了java源碼文件。(如果最開(kāi)始直接解壓原始的Jar包,那么解壓出來(lái)的就是class文件,而不是java源文件)
3、打開(kāi)myeclipse,新建一個(gè)普通的Project項(xiàng)目,將解壓后的內(nèi)容拷貝到項(xiàng)目里。
4、此時(shí)編譯會(huì)報(bào)錯(cuò),因?yàn)槿鄙僖蕾嚨腏ar包,需要找到相應(yīng)的包并且導(dǎo)入。那么這些包到底是哪些呢?
使用jd-gui打開(kāi)最原始的Jar包,在META-IN目錄下的maven目錄下,有所需要的依賴包。其中pom.properties中記錄著Jar包的版本信息,可以直接從maven倉(cāng)庫(kù)下載這些包
5、最后,項(xiàng)目重新編譯,并且打成Jar包。如果生成的源碼可以運(yùn)行,就直接編譯,直接打包。
6、如果生成的項(xiàng)目不能運(yùn)行,但是你只需要更改一兩個(gè)類:
(1)編譯。如果導(dǎo)入了所依賴的包,那么項(xiàng)目編譯應(yīng)該是沒(méi)問(wèn)題的,這一步仔細(xì)檢查。然后使用myeclipse或者java命令編譯,生成一個(gè)class文件。
(2)打包。
簡(jiǎn)單的方法:使用rar,zip,好壓等解壓縮工具打開(kāi)原始的Jar包,直接把修改的class文件拖進(jìn)去,覆蓋原來(lái)的class文件。
復(fù)雜的方法:將原始Jar包,直接解壓生成一個(gè)文件夾,解壓后的是class文件。用修改后的class文件進(jìn)行替換,再將這個(gè)文件夾壓縮生成一個(gè)zip文件,最后將zip文件的后綴名改成jar,即可運(yùn)行。
注意使用winrar工具打包時(shí),要選擇壓縮文件格式為zip
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java運(yùn)行jar包提示?“XXX中沒(méi)有主清單屬性”?"找不到主類”兩種解決辦法
- 解決運(yùn)行jar包出錯(cuò):ClassNotFoundException問(wèn)題
- Java運(yùn)行Jar包內(nèi)存配置的操作
- docker安裝openjdk并運(yùn)行jar包的操作方法
- IDEA生成可運(yùn)行jar包(包含第三方j(luò)ar包)流程詳解
- SpringBoot項(xiàng)目運(yùn)行jar包啟動(dòng)的步驟流程解析
- myeclipse導(dǎo)出可運(yùn)行jar包簡(jiǎn)介
- Maven打包沒(méi)有指定主類問(wèn)題(xxx.jar中沒(méi)有主清單屬性)
- idea 打包的jar運(yùn)行報(bào) "XXX中沒(méi)有主清單屬性"
- 運(yùn)行Jar包出現(xiàn)提示xxx中沒(méi)有主清單屬性報(bào)錯(cuò)問(wèn)題解決方法
相關(guān)文章
SpringBoot 關(guān)于Feign的超時(shí)時(shí)間配置操作
這篇文章主要介紹了SpringBoot 關(guān)于Feign的超時(shí)時(shí)間配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java后臺(tái)基于POST獲取JSON格式數(shù)據(jù)
這篇文章主要介紹了Java后臺(tái)基于POST獲取JSON格式數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03用SpringMVC編寫(xiě)一個(gè)HelloWorld的詳細(xì)過(guò)程
SpringMVC是Spring的一個(gè)后續(xù)產(chǎn)品,是Spring的一個(gè)子項(xiàng)目<BR>SpringMVC?是?Spring?為表述層開(kāi)發(fā)提供的一整套完備的解決方案,本文我們將用SpringMVC編寫(xiě)一個(gè)HelloWorld,文中有詳細(xì)的編寫(xiě)過(guò)程,需要的朋友可以參考下2023-08-08使用lombok的@Data會(huì)導(dǎo)致棧溢出StackOverflowError問(wèn)題
這篇文章主要介紹了使用lombok的@Data會(huì)導(dǎo)致棧溢出StackOverflowError問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Java的Hibernate框架結(jié)合MySQL的入門(mén)學(xué)習(xí)教程
Java世界中的SSH三大框架是Web開(kāi)發(fā)方面的人氣組合,Hibernate便是其中之一,這里我們來(lái)整理一下Java的Hibernate框架結(jié)合MySQL的入門(mén)學(xué)習(xí)教程,需要的朋友可以參考下2016-07-07Kafka日志清理實(shí)現(xiàn)詳細(xì)過(guò)程講解
這篇文章主要為大家介紹了Kafka日志清理實(shí)現(xiàn)詳細(xì)過(guò)程講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05