簡體   English   中英

JD-GUI批量反編譯Java文件

[英]Batch decompiling of Java files with JD-GUI

我正在尋找一個程序來批量反編譯 Java 類。 我找到了 JAD,但是它不支持 Java 的一些新特性,這個程序的好處是它可以從命令行執行並自動生成 *.java 文件。

我還找到了 JD-GUI。 支持Java的大部分特性,缺點是不能做批處理。 您需要使用程序打開類文件並單擊保存。

有沒有辦法讓JD-GUI像JAD一樣做批處理?

JD-GUI 的命令行反編譯是一個非常需要的功能,但尚未實現。 或許您可以同時使用以下解決方法:

  1. jar(或 zip)你想要一起反編譯的所有類。
  2. 啟動 JD-GUI 並打開您的 jar (zip) 存檔。
  3. 使用“文件”-“保存 JAR 源”菜單選項。 它將從您的存檔中反編譯所有類,並將它們的源代碼保存到另一個 zip 文件中。

不幸的是,我還沒有看到任何具有命令行支持的好的開源 JD-GUI 替代品,所以我認為上面的內容目前已經很好了。

我可以推薦將 Jad 與JadRetro結合使用——當然,它不能使 Jad 生成 Java 泛型,但反編譯的源代碼(包括 Java 1.5+ 類)在功能上等同於原始代碼(並且在大多數情況下可反向編譯)。
它的使用很簡單:

jadretro *.class
jad類

筆記:
1. JadRetro 可以像這樣以批處理模式使用:jadretro ...
2. 如果您使用的是 jad v1.5.8e(而不是最新的 v1.5.8g),則應將“-c”選項傳遞給 jadretro(否則 jad 將拒絕反編譯 Java 1.5+ 類)。

看起來您可以使用命令行一次啟動帶有一大堆庫的 GUI,然后 CTRL+ALT+s/CTRL+w 每個選項卡以快速保存/關閉。 反編譯一堆依賴的時候不是自動化的但是可以忍受。 (請注意,“^”只是在 Windows 中執行多行命令的一個技巧。)

"c:\jd-gui-0.3.6.windows\jd-gui.exe" ^
 c:\my-libs\lib-a.jar ^
 c:\my-libs\lib-b.jar ^
 c:\my-libs\lib-c.jar ^
 c:\my-libs\lib-d.jar ^
 c:\my-libs\lib-e.jar

File > Save all sources 將所有文件保存在主目錄中。

JD-GUI 具有將類文件批量導出為.java 文件的能力,壓縮在一個jar 文件中。

但是這個功能不是命令行控制的,而是鼠標點擊,這個不太穩定,有時會卡住。

您可以使用 jd-cli ( https://github.com/kwart/jd-cli/releases/tag/jd-cli-1.2.0 )。

  1. 准備 your.jar 文件(包含類)
  2. 輸入: jd-cli target.jar -od jar_result -g ALL

你會得到一個壓縮的java源代碼文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM