Jasmin HelloWorld Пример Failing - PullRequest
       3

Jasmin HelloWorld Пример Failing

3 голосов
/ 19 апреля 2011

У меня проблема с выполнением недавно скомпилированного 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

1 Ответ

4 голосов
/ 21 апреля 2011

Проблема в том, что файл HelloWorld.j является поддельным. Смотрите эту тему: http://sourceforge.net/projects/jasmin/forums/forum/349052/topic/3330588

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...