我在从 jasmin-2.4 发行版执行新编译的 HelloWorld.j 时遇到问题。
我下载了 jasmin-2.4。我可以编译使用:
java -jar jasmin.jar 示例\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 Runtime Environment (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed模式)
这是发行版中的 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