Java Jasmin HelloWorld示例失败

Java Jasmin HelloWorld示例失败,java,jasmin,Java,Jasmin,我在执行jasmin-2.4发行版中新编译的HelloWorld.j时遇到问题 我下载了jasmin-2.4。我可以使用以下方法编译ok: java-jar jasmin.jar示例\HelloWorld.j 输出为: 生成:NoJad\j.class 当我执行新编译的程序时: javanojad.j 将引发异常: 线程“main”java.lang.VerifyError中出现异常:(类:NoJad/j,方法:main 签名:([Ljava/lang/String;)V)期望在堆栈上找到对象/

我在执行jasmin-2.4发行版中新编译的HelloWorld.j时遇到问题

我下载了jasmin-2.4。我可以使用以下方法编译ok:

java-jar jasmin.jar示例\HelloWorld.j

输出为:

生成:NoJad\j.class

当我执行新编译的程序时:

javanojad.j

将引发异常:

线程“main”java.lang.VerifyError中出现异常:(类:NoJad/j,方法:main 签名:([Ljava/lang/String;)V)期望在堆栈上找到对象/数组 找不到主类:NoJad.j.程序将退出

我倾向于相信这是HelloWorld.j示例中的一个bug。也许一个新的验证器发现了一个bug

注1:发行版中预编译的HelloWorld.class按预期工作

注2:我使用的是这个版本的java java版本“1.6.0_24” Java(TM)SE运行时环境(build 1.6.0_24-b07) Java HotSpot(TM)64位服务器虚拟机(构建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
;---Jonathan Meyer 1996版权所有。保留所有权利-----------------
;文件:jasmin/examples/HelloWorld.j
;作者:乔纳森·迈耶,1996年7月10日
;目的:打印“你好,世界!”
; -------------------------------------------------------------------------
.NoJad.j.公共类
.super java/lang/Object
;
;标准初始值设定项
.public()方法V
阿洛德0
invokenvirtualjava/lang/Object/()V
返回
.结束方法
.method public static main([Ljava/lang/String;)V
.限制堆栈2
.限制本地人2
双脉冲2
阿斯托尔0
双推3
阿斯托尔1号
阿洛德0
阿洛德1号
阿斯托尔0
阿斯托尔1号
返回
.结束方法

问题在于HelloWorld.j文件是伪造的。请参阅以下线程: