環境
- 各ファイル名
- 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 という感じでコマンド実行パスにファイルが生成されます。