Java Jasmin HelloWorld示例失败
我在执行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文件: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)期望在堆栈上找到对象/
; --- 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文件是伪造的。请参阅以下线程: