以下の内容はhttps://unageanu.hatenablog.com/entry/20091223/1261564888より取得しました。


javaclassでCode属性とStackMapTable属性の解析をサポート

javaclassにCode属性とStackMapTable属性の解析機能を実装してコミットしましたよ。
GitHub - unageanu/javaclass

以下はjavaclassを使ってクラスの解析結果を表示する例です。Code属性の解析をサポートしたので(と違って)javapに近い結果が得られるようになっています。

require "javaclass"
open( "./java_class/HelloWorld.class", "r+b" ) {|io|
  jc = JavaClass.from io
  puts jc.to_s
}

解析対象のクラスは次のとおり。

public class HelloWorld {
    public static void main ( String[] args ) {
        String str = "Hello World!";
        System.out.println( str );
    }
}

実行結果です。

// version 50.0
// source HelloWorld.java
public class HelloWorld 
extends java.lang.Object {



    public void <init> (  ) {
        HelloWorld this;
    
        0 : aload_0 // line : 1
        1 : invokespecial 8
        4 : return
    }
    public static void main ( java.lang.String[] arg1 ) {
        java.lang.String[] args;
        java.lang.String str;
    
        0 : ldc 16 // line : 3
        2 : astore_1
        3 : getstatic 18
        6 : aload_1 // line : 4
        7 : invokevirtual 24
        10 : return
    }

}

さて、gemも作っておこうかなと思ったけど、gemcutterにすでに同名のgemがアップロードされとる!..orzどうしたもんかな。




以上の内容はhttps://unageanu.hatenablog.com/entry/20091223/1261564888より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14