ピーター 1652-471(商品情報を必ずお読みください。) ローラーボール バリアス バリアス :118069872:ブランド万年筆インヘリットペン カランダッシュ 限定品 キッチン、日用品、文具 マリーノ 限定品-ボールペン カランダッシュ,ローラーボール,限定品,バリアス,ピーター,マリーノ,1652-471。送料無料。新品、未使用、正規メーカー保証書付き。:118069872:カランダッシュ,ローラーボール,限定品,バリアス,ピーター,マリーノ,1652-471(商品情報を必ずお読みください。),キッチン、日用品、文具,文具、ステーショナリー,筆記用具,ボールペン,ボールペン ※表示中の商品でも完売の場合があります。ご注文前に必ずお問合わせください。※本国からのお取り寄せおよび希少品のため、お届けまで約1ヶ月から2ヶ月ほどお時間をいただく場合がございます。カランダッシュは、建築家ピーター マリーノ氏とコラボレーションしたバリアスコレクションの限定筆記具を発売します。このコラボはピーター マリーノ氏が設計のスケッチを描く際にバリアス コレクションを愛用してきたことから始まりました。カランダッシュは彼の自由な発想に一切を委ね、その結果、モダンでトレンディなデザインの筆記具が完成しました。レザーを纏い、書き心地の良さを追求した魅惑的な筆記具となっています。キャップタイプクリップ付きキャップ:シルバープレートにロジウムコートキャップ部分:ピーター マリーノのサインを刻印ボディ:フランス製カーフスキン。グレーの細いステッチを施したデザイン製造本数:各1978本(ジェネリックナンバー 1/1978をキャップ部分に刻印) JD-GUI で Scala の Java バイドコードをデコンパイルする.

オープンソースの Java バイドコードデコンパイラ JD-GUI を使って,scalac でコンパイルした Java バイトコードをデコンパイルします.

インストール

JD-GUI のホームページ インストーラがあるので,ダウンロードします.執筆時点では,

のバイナリが用意されています.

Mac OS X の場合は, .dmg ファイルをダウンロード,マウントすると Finderに JD-GUI が見えるので,それを Application フォルダにコピーするだけでした.

使い方

まず,scalac で Scala コードを Java バイトコードにコンパイルします.今回は,次の HappyNewYear.scala を用意しました.



object HappyNewYear {  def main(args: Array[String]) {    println("Happy New Year!")  }}

これを scalac します.


~/work $ scalac HappyNewYear.scala~/work $ ls HappyNewYear*HappyNewYear$.class  HappyNewYear.class  HappyNewYear.scala

ちゃんと .class ファイルが作られています.あとは,JD-GUI を起動して,メニューから File => Open File で作られた .class ファイルを開くだけです.

まずは,HappyNewYear.class から:


import scala.reflect.ScalaSignature;@ScalaSignature(bytes=" ... 長いので省略 ... ")public final class HappyNewYear{  public static void main(String[] paramArrayOfString)  {    HappyNewYear..MODULE$.main(paramArrayOfString);  }}

ScalaSignature って何? コップ本 (2e) を grep しても出てこないので気にしないことにします.つぎに,HappyNewYear$.class を:


import scala.Predef.;public final class HappyNewYear${  public static final  MODULE$;  static  {    new ();  }  public void main(String[] args)  {    Predef..MODULE$.println("Happy New Year!");  }  private HappyNewYear$()  {    MODULE$ = this;  }}

ピーター 1652-471(商品情報を必ずお読みください。) ローラーボール バリアス バリアス :118069872:ブランド万年筆インヘリットペン カランダッシュ 限定品 キッチン、日用品、文具 マリーノ 限定品-ボールペン

のように使います.

おわりに

オープンソースの Java バイトコードデコンパイラ JD-GUI を紹介しました.慣れれば javap でバイトコードを直接追いかけるのも苦にならなくなるのですが,Scala コードと等価な Java コードがどのようなものか直感的に脳内変換できるようにするためにも,JD-GUI でデコンパイルして見るのも悪くないと思います.

バージョン
  • Scala 2.10.3
  • JD-GUI 0.3.5