私の歴史と今

振り返ると恥ずかしくなるのが私の歴史。だけどそのときは真面目に書いていた訳でね。そんな今の私を書いていく。

Jad使用時の注意点

致命的な警告

すべてのクラスファイルをデコンパイルできる訳ではない。致命的な警告がでているソースのクラスファイルは、正常にデコンパイルできないことがある。そういう場合は標準エラー出力で確認する。例えば、finally句にreturnがある場合の警告。そのようなメソッドデコンパイルできない。

バックアップファイル

修正等でクラスファイルを上書きする場合があるが、Hoge.classをバックアップしてHoge20090404.classという古いバージョンのクラスファイルが存在している場合は要注意。classファイルを一括してデコンパイルすると、デコンパイルされる順番によっては、Hoge.classのデコンパイルファイルがHoge20090404.classのデコンパイルファイルで上書きされてしまうことがある。これはハマル。修正したはずなのに、デコンパイルファイルは旧バージョン。本当にハマる。だから、不要なクラスファイルはすべて削除してからデコンパイルした方がいい。

クラスメンバーの順番

インスタンス変数をクラス定義内の冒頭に宣言していたとしても、そのクラスファイルをデコンパイルすると、宣言文がソースファイルの最後に移動する。冒頭だけ見て「あれれ?インスタンス変数がない?」とはまらないようにする。

文字列

デコンパイルした後のソースファイル中の文字列リテラルはすべてユニコード表記になっているので、文字列リテラルで検索してもヒットしない。すぐ気付くことだけど、たまに忘れて「あれれ?」となるので注意。