吹いた。頑張った。良かった。次回も頑張りたい。
(no title)
javap の使い方 – Java クラスファイル逆アセンブラ。
それなりの頻度で必要になるのに、いつもド忘れしている「javap」の存在を、日記に書き殴る事で記憶に残したい。
やりたいことは、
- お手軽にフィールドやメソッドの一覧表を作成したい
- 「俺ってクラスファイルを逆アセンブルで解析できるんだぜ?」なスーパーハカーになりたい
です。きっと。たぶん。
早速開始。
$ cd ~/java $ java -version java version "1.5.0_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-164) Java HotSpot(TM) Client VM (build 1.5.0_07-87, mixed mode, sharing)
とりあえず、適当にコードを書いてみる。pakageはsampleにしてみた。
$ cat sample/HelloWorld.java package sample; public class HelloWorld { private String hello; private String world; public HelloWorld() { hello = "Hello"; world = "World"; } public void say() { System.out.println(this.doSomething()); } private String doSomething() { return this.hello + this.world; } }
はい。特に意味はナイです。プライベートフィールド2、コンストラクタ1、プライベートメソッド1、と。
$ javac sample/HelloWorld.java
↑コンパイル。↓逆コンパイル。
$ javap sample/HelloWorld Compiled from "HelloWorld.java" public class sample.HelloWorld extends java.lang.Object{ public sample.HelloWorld(); public void say(); }
おお、出来てる!!
privateも覗きみたいので、オプション指定する。
$ javap -private sample/HelloWorld Compiled from "HelloWorld.java" public class sample.HelloWorld extends java.lang.Object{ private java.lang.String hello; private java.lang.String world; public sample.HelloWorld(); public void say(); private java.lang.String doSomething(); }
興味深いね!!
他にはどんなオプションがあるのかな♪
$ javap -help
※注:長いので省略されました。。
なるへそ!!
もう少し詳しく知るためには、
すると良いよ。あと、
も良いよね、今日は書かなかったけど。jad 最高。
これで、'''既存のクラスファイルからJavadoc風Excel仕様書を作成する'''、という 時間の無d 有意義な業務を効率化できるね。
生産性は向上だね。給料は現状維持だね。
狛江の西河原公民館で吹奏楽。
タイトル通り。
曲は、「ぐるりよざ」かな。一楽章だったと思う。歌は省略されました。
今日は、見学者が三人も!どうしちゃったんですか?
「エルカミ」より「ぐるりよざ」の方が音符が少なくて楽だ、とか言ったら波紋を呼びそうなのでノーコメントかな。コメントしてるけど。
最後にグダグダ三楽章をやっつけ、飲み会へ。泡盛は控えめに飲もうと思いました。
オレのiBook G4 – 第5話。
■! [俺様のこと] オレのiBook G4 - 第5話。
■[AirMac Extreme|http://www.apple.com/jp/airmacextreme/ で、さまざまな可能性の世界への扉を開いた。
""!!![アップル - AirMac Extreme|http://www.apple.com/jp/airmacextreme/
""自宅、学校、ビジネスに最適なワイヤレスソリューション、AirMac Extremeベースステーションが新しくなりました。超高速で安全なワイヤレスネットワークで、ホームエンターテイメント、バックアップ、プリントなど、さまざまな可能性の世界への扉を開きます。
有線LANから無線LANへ。
■さらには、余っていた[外付けのUSBハードディスクを共有ドライブにする|http://www.apple.com/jp/airmacextreme/sharing.htmlことで、無線なネットワークストレージを160GB入手。
■最後に、"iTunes Music"フォルダの場所を、先ほど設定した共有ドライブ上に移動。
""!!!ハードディスク使用量
"":before:Size:37.14GB/Used33.86GB/Free:3.28GB
"":after:Size:37.14GB/Used15.72GB/Free:21.14GB
夢がひろがりんぐ。[IEEE 802.11nドラフト|http://www.apple.com/jp/80211/ には対応してないけど、な。