日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么复原java项目文件_从jar包还原出java源码(项目文件)

發(fā)布時(shí)間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么复原java项目文件_从jar包还原出java源码(项目文件) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上周接到個(gè)新任務(wù),一個(gè)遺留的接口工程需要改造,然而根據(jù)前任開發(fā)留下的文檔看,這個(gè)工程沒有代碼,只有生產(chǎn)環(huán)境的jar包供使用。。邊吐(咒)槽(罵)邊在SVN服務(wù)器上四處翻找,想找到這個(gè)工程的源碼,畢竟沒源碼怎么跑起來這個(gè)工程?不能跑起來怎么改造調(diào)試?

確認(rèn)真的找不到源碼之后。。冷靜下來開始研究這個(gè)前輩留下的坑

0. get jar包

從生產(chǎn)環(huán)境down下來jar包,打開看了一眼:

黑人問號(hào)臉。。這是啥?為什么jar包里面還有java文件?還有這種操作?

1. 初次嘗試

把jar包的內(nèi)容解壓出來之后,就想把所有的class文件刪掉,只留下java文件,這樣不就get了源碼?

結(jié)果發(fā)現(xiàn)想的太簡(jiǎn)單了,從上面的截圖就能看出,class文件在2010年的5月25號(hào)有更新,而java文件是2010年3月31號(hào)更新的,這就說明class文件比java文件更新,所以這些java文件都是過期的。。【坑啊

2. 再次嘗試

如果只有一個(gè)class文件,怎么查看java代碼這個(gè)很簡(jiǎn)單,平時(shí)用JD-GUI或類似的反編譯工具就可以了,但印象中只能一個(gè)文件一個(gè)文件的看,我手里有一個(gè)jar包可怎么還原源碼導(dǎo)進(jìn)MyEclipse啊。。

去google了半天,都沒有找到好的答案(事后發(fā)現(xiàn)了答案,和我的做法相同)

一陣沮喪,然后無聊打開了JD-GUI,打開jar包后,隨手點(diǎn)到了左上角的File,咦??

發(fā)現(xiàn)了一個(gè)save!一陣興奮,然后點(diǎn)了保存試了一下,發(fā)現(xiàn)導(dǎo)出來的zip文件就是反編譯后的整個(gè)源碼!

3. 小問題

打開zip文件看了一眼,發(fā)現(xiàn):

因?yàn)閖ar包里面有同名的class文件和java文件,導(dǎo)出來的反編譯源碼也保留了舊的java文件在里面(從文件時(shí)間可以看出)

4. 解決小問題

這里用了壓縮軟件的命令,我平時(shí)用的是7-ZIP,簡(jiǎn)單搜索學(xué)習(xí)了一下,步驟如下:

a. 將7-ZIP的目錄配置到系統(tǒng)環(huán)境變量(PATH)中

b. 打開命令行,到j(luò)ar包所在目錄

c. 執(zhí)行命令

7z?d?xxx.jar?*.java?-r

效果如圖:

5. 重新保存源碼

刪除了原jar包中的java文件后,再次用JD-GUI保存反編譯源碼文件,搞定

6. 最后

歡聲笑語中獲得了源碼后,發(fā)現(xiàn)想啟動(dòng)這個(gè)項(xiàng)目還有些小麻煩,不過跟不知道怎么從jar包還原出工程源碼相比,都是小問題了!

總結(jié)

以上是生活随笔為你收集整理的怎么复原java项目文件_从jar包还原出java源码(项目文件)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。