jad で以下のように -r を指定すれば階層を保持したままデコンパイルできます。
jad -8 -s java -d src -r class\**\*.class
この場合、javaファイルに記述されたpackageに従って出力先のフォルダが決まります。
1つのプロジェクトだけデコンパイルを行うのであればそれで問題ありませんが、
調べ事をするために色々な所から無造作にクラスファイルを寄せ集めた場合は
出力先が重なったり、どのjavaファイルがどのクラスファイルの物か分かりづらくなることがあります。
そうした場合は以下のようなバッチ、またはシェルを作ってクラスファイルを寄せ集めたパスを引数に渡すと、
クラスファイルと同じ場所にjavaファイルが作られるため、少しは調査がしやすくなるかもしれません。
Windowsの場合
jad.bat
for /f %%I in ('dir /s /b %1\*.class') DO @jad -8 -s .java -d %%~dpI %%I
Linuxの場合
jad.sh
for classfile in `find "$1" -name "*.class"`
do
./jad -8 -s .java -d `dirname $classfile`/ $classfile
done
できればクラスファイルをためこんだclassフォルダと同じ場所に
class_srcのような名前のフォルダを作って、その中にclassフォルダ内と同じ
ディレクトリ構造でjavaファイルが出力されるようにしたかったのですが
Windowsの場合の出力先をうまく編集できなかったので分かり次第追記します。