読者です 読者をやめる 読者になる 読者になる

ディレクトリツリー上の全ての*.classファイルを逆コンパイル

Windows Java

3/3 禁断の必殺技?「デコンパイラ」を使う [Javaプログラミング] All AboutではJadClipseのほか全部で4種類のツールを挙げていますが、このページを見つける前にWindowsNTコマンドスクリプトを書いてしまったので貼っておきます。

@echo off
echo ●*.jarを展開しています・・・
jar xvf %1

echo ●*.classを逆コンパイルしています・・・
for /r %%I in (*.class) do (
	pushd %%~dpI
	jad -8 %%~nxI
	ren %%~nI.jad %%~nI.java
	del %%I
	popd
)
pause

使い方は下記の通りです。jarとjadはPATHの通ったディレクトリにインストールされている必要があります。

C:\> jar2java.cmd SomeApplication.jar

このネタは車輪の再生産でしたが、Windowsでディレクトリツリーの全てのファイルに対して一律に処理したい場合に書くWindowsNTコマンドスクリプト*1の雛形にはなると思います。

*1:MS-DOSバッチファイルの方が通りがいいけどw