ネタ 2015-001
JavaバイトコードアセンブラのJasminをWindowsで動かしてみた。
JavaバイトコードアセンブラのJasminをWindowsで動かすというのを前に試してみた。
Jasmin自体がJavaで作られており、普通にJava環境でJasminを起動して動かすことができるので、普通なら何もしなくても構わない。
そこをあえて、Java環境が無くてもJasminが動かせるようにWindowsのネイティブのバイナリ(.exe)を作って動かしてみた。
JavaのソースコードをコンパイルしてWindowsのバイナリを得るには、GNU Compiler for Java (GCJ)を使うと可能だ。
Windows用のMinGWベースのものを使った。
→ thisiscool.com MinGW GCC/GCJ
手順としては、まずGCJをc:\に置いてpathを通し、
|
set PATH=c:\thisiscool-gcc\gcc-ecj\bin |
次のようにすればコンパイルされて、exeファイルを得ることができる。
|
gcj jasmin.jar --main=jasmin.Main -o jasmin |
一応ここに作成したバイナリを置いておく。
[ Jasmin_win32.zip (download) ]
Jasmin.exeができたので、例題としてhello worldなバイトコードのソースをアセンブルしてみた。
.class public Hello .super java/lang/Object .method public ()V aload_0 invokespecial java/lang/Object/()V return .end method .method public static main([Ljava/lang/String;)V .limit stack 2 getstatic java/lang/System/out Ljava/io/PrintStream; ldc "Hello Jasmin!!" invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method |
このソースをhello.jという名前でファイル作成し、
|
jasmin.exe hello.j |
として、アセンブルすることができ、バイトコードのHello.classが得られる。
Java環境があれば、
|
java Hello |
とすれば、実行できるのが確認できる。