修改及反編譯可運(yùn)行Jar包實(shí)現(xiàn)過程詳解
將可運(yùn)行Jar包,反編譯成項(xiàng)目,修改代碼,再次編譯,打包。
需要工具:jd-gui、myeclipse
具體步驟:
1、使用jd-gui打開原始的Jar包,選擇File-->Save All Sources,會(huì)生成一個(gè)zip壓縮包

2、解壓這個(gè)壓縮包,生成一個(gè)文件夾,可以看到文件夾里所有的class文件變成了java源碼文件。(如果最開始直接解壓原始的Jar包,那么解壓出來的就是class文件,而不是java源文件)
3、打開myeclipse,新建一個(gè)普通的Project項(xiàng)目,將解壓后的內(nèi)容拷貝到項(xiàng)目里。
4、此時(shí)編譯會(huì)報(bào)錯(cuò),因?yàn)槿鄙僖蕾嚨腏ar包,需要找到相應(yīng)的包并且導(dǎo)入。那么這些包到底是哪些呢?
使用jd-gui打開最原始的Jar包,在META-IN目錄下的maven目錄下,有所需要的依賴包。其中pom.properties中記錄著Jar包的版本信息,可以直接從maven倉庫下載這些包

5、最后,項(xiàng)目重新編譯,并且打成Jar包。如果生成的源碼可以運(yùn)行,就直接編譯,直接打包。
6、如果生成的項(xiàng)目不能運(yùn)行,但是你只需要更改一兩個(gè)類:
(1)編譯。如果導(dǎo)入了所依賴的包,那么項(xiàng)目編譯應(yīng)該是沒問題的,這一步仔細(xì)檢查。然后使用myeclipse或者java命令編譯,生成一個(gè)class文件。

(2)打包。
簡單的方法:使用rar,zip,好壓等解壓縮工具打開原始的Jar包,直接把修改的class文件拖進(jìn)去,覆蓋原來的class文件。
復(fù)雜的方法:將原始Jar包,直接解壓生成一個(gè)文件夾,解壓后的是class文件。用修改后的class文件進(jìn)行替換,再將這個(gè)文件夾壓縮生成一個(gè)zip文件,最后將zip文件的后綴名改成jar,即可運(yùn)行。
注意使用winrar工具打包時(shí),要選擇壓縮文件格式為zip

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java運(yùn)行jar包提示?“XXX中沒有主清單屬性”?"找不到主類”兩種解決辦法
- 解決運(yùn)行jar包出錯(cuò):ClassNotFoundException問題
- 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包簡介
- Maven打包沒有指定主類問題(xxx.jar中沒有主清單屬性)
- idea 打包的jar運(yùn)行報(bào) "XXX中沒有主清單屬性"
- 運(yùn)行Jar包出現(xiàn)提示xxx中沒有主清單屬性報(bào)錯(cuò)問題解決方法
相關(guān)文章
SpringBoot如何使用自定義注解實(shí)現(xiàn)接口限流
這篇文章主要介紹了SpringBoot如何使用自定義注解實(shí)現(xiàn)接口限流,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
java實(shí)現(xiàn)大文件分割與合并的實(shí)例代碼
java實(shí)現(xiàn)大文件分割與合并的實(shí)例代碼,需要的朋友可以參考一下2013-03-03
一篇文章大家徹底學(xué)會(huì)Java之格式化輸出
Java提供了多種格式化輸出的方式,包括String.format()、System.out.printf()和Formatter類,這些方法支持?jǐn)?shù)字、日期、字符串等多種格式化操作,這篇文章主要介紹了Java格式化輸出的相關(guān)資料,需要的朋友可以參考下2025-04-04
Springboot 跨域配置無效及接口訪問報(bào)錯(cuò)的解決方法
這篇文章主要介紹了Springboot 跨域配置無效及接口訪問報(bào)錯(cuò)的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
淺談對(duì)象數(shù)組或list排序及Collections排序原理
下面小編就為大家?guī)硪黄獪\談對(duì)象數(shù)組或list排序及Collections排序原理。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
SpringBoot創(chuàng)建自定義Starter代碼實(shí)例
這篇文章主要介紹了SpringBoot創(chuàng)建自定義Starter代碼實(shí)例,自定義 Starter 是一種在軟件開發(fā)中常用的技術(shù),它可以幫助開發(fā)者快速搭建項(xiàng)目的基礎(chǔ)框架和配置,可以將一些常用的功能、依賴和配置封裝成一個(gè)可復(fù)用的模塊,方便在不同的項(xiàng)目中使用,需要的朋友可以參考下2023-11-11
Thread線程的基礎(chǔ)知識(shí)及常見疑惑點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家分享的是關(guān)于Thread線程的基礎(chǔ)知識(shí)及常見疑惑點(diǎn),對(duì)此有學(xué)習(xí)需求的朋友們可以學(xué)習(xí)參考下。2019-05-05

