У меня проблема с выполнением недавно скомпилированного HelloWorld.j из дистрибутива jasmin-2.4.
Я скачал jasmin-2.4.Я могу скомпилировать нормально, используя:
java -jar jasmin.jar examples \ HelloWorld.j
вывод:
Генерируется: NoJad \ j.class
Когда я выполняю только что скомпилированную программу:
java NoJad.j
возникает исключение:
Исключение в потоке "main" 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 (сборка 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