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.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

とすれば、実行できるのが確認できる。


追記

前にJavaバイトコードを生成するコンパイラを作ってみたときにJasminを弄ったのだった。
Javaバイトコードを生成するTiny BASICコンパイラを作ってみた




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

+ 37 = 45