33

Java クラスをバッチ逆コンパイルするプログラムを探しています。JAD を見つけましたが、Java のいくつかの新機能をサポートしていませんでした。このプログラムの利点は、コマンド ラインから実行して *.java ファイルを自動的に生成できることです。

JD-GUIも見つけました。Java のほとんどの機能をサポートしていますが、バッチ処理ができないという欠点があります。プログラムでクラスファイルを開き、[保存] をクリックする必要があります。

JD-GUI に JAD のようなバッチ処理をさせる方法はありますか?

4

5 に答える 5

58

JD-GUI のコマンド ライン逆コンパイルは、非常に要望の多かった機能ですが、まだ実装されていません。当面の間、次の回避策を使用できます。

  1. まとめて逆コンパイルするすべてのクラスを jar (または zip) します。
  2. JD-GUI を起動し、jar (zip) アーカイブを開きます。
  3. [ファイル] - [JAR ソースの保存] メニュー オプションを使用します。アーカイブからすべてのクラスを逆コンパイルし、それらのソースを別の zip ファイルに保存します。

残念ながら、コマンドラインをサポートする優れたオープン ソース JD-GUI の代替品は見たことがありません。

于 2009-09-06T01:23:43.247 に答える
3

JadRetroと組み合わせて Jad を使用することをお勧めします。もちろん、Jad に Java ジェネリックを生成させることはできませんが、逆コンパイルされたソース (Java 1.5+ クラスを含む) は元のソースと機能的に同等です (ほとんどの場合、逆コンパイル可能です)。
使い方は簡単です:

jadretro *.class jad
.class

注:
1. JadRetro は次のようにバッチ モードで使用できます
。 (そうしないと、jad は Java 1.5+ クラスの逆コンパイルを拒否します)。

于 2009-12-16T07:06:13.407 に答える
1

コマンドラインを使用して一度に多数のライブラリで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
于 2014-02-10T20:12:42.703 に答える
1

ファイル > すべてのソースを保存すると、すべてのファイルがホーム ディレクトリに保存されます。

于 2018-05-12T08:17:10.030 に答える