jasmin-2.4 ディストリビューションから新しくコンパイルされた HelloWorld.j の実行に問題があります。
jasmin-2.4 をダウンロードしました。次を使用して問題なくコンパイルできます。
java -jar jasmin.jar examples\HelloWorld.j
出力は次のとおりです。
生成: NoJad\j.class
新しくコンパイルしたプログラムを実行すると:
java NoJad.j
例外がスローされます:
スレッド「メイン」での例外 java.lang.VerifyError: (クラス: NoJad/j、メソッド: メイン シグネチャ: ([Ljava/lang/String;)V) スタック上のオブジェクト/配列の検索を期待しています メイン クラスが見つかりませんでした: NoJad.j. プログラムは終了します。
これは、HelloWorld.j の例のバグだと思いがちです。おそらく、新しいベリファイアがバグをキャッチしたのでしょうか???
注 1: ディストリビューション内の事前コンパイルされた HelloWorld.class は期待どおりに動作します。
注 2: このバージョンの Java を使用しています Java バージョン "1.6.0_24" Java(TM) SE ランタイム環境 (ビルド 1.6.0_24-b07) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 19.1-b02、混合)モード)
ディストリビューションの HelloWorld.j ファイルは次のとおりです。
; --- Copyright Jonathan Meyer 1996. All rights reserved. -----------------
; File: jasmin/examples/HelloWorld.j
; Author: Jonathan Meyer, 10 July 1996
; Purpose: Prints out "Hello World!"
; -------------------------------------------------------------------------
.class public NoJad.j
.super java/lang/Object
;
; standard initializer
.method public <init>()V
aload_0
invokenonvirtual java/lang/Object/<init>()V
return
.end method
.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 2
bipush 2
astore 0
bipush 3
astore 1
aload 0
aload 1
astore 0
astore 1
return
.end method