warファイルを展開してclassをソースにする

環境

  • 各ファイル名
    • warファイル: hoge.war
    • classファイル:hoge.class
  • 作業場所
    • /home/you/tmp に hoge.warを置く (docker上では /var/tmp)

jarとjadの環境構築

dockerを使って環境を構築。(jarとjadが使える環境であれば以下の操作は不要です)

% sudo docker run -it -v /home/you/tmp:/var/tmp alpine /bin/ash
% apk update
% apk add openjdk8
% apk add curl
% curl -o jad.zip https://varaneckas.com/jad/jad158e.linux.static.zip
% unzip jad.zip

warファイルを展開する

ローカルでは /home/you/tmpで、dockerコンテナ上では /var/tmp に置いた hoge.war ファイルを jarコマンドを使って展開する。jarコマンドのパスは上記でインストールしたopenjdk8のものです。

% /usr/lib/jvm/java-1.8-openjdk/bin/jar -xvf hoge.war

classファイルをソースにする

展開したwarファイルの中に、/var/tmp/WEB-INF/classes/com/foo/baa/hoge.class (docker上のパス名) という物があったとして、そのファイルをjavaのコードに変換します。

% ./jad ./WEB-INF/classes/com/foo/baa/hoge.class
% less hoge.jad

変換すると、クラス名.class → クラス名.jad という感じでコマンド実行パスにファイルが生成されます。