2011-04-19 3 views
3

Je rencontre un problème lors de l'exécution d'un HelloWorld.j nouvellement compilé à partir de la distribution jasmin-2.4.Exemple Jasmin HelloWorld

J'ai téléchargé jasmin-2.4. Je peux compiler ok à l'aide:

java jar exemples jasmin.jar \ HelloWorld.j

la sortie est:

création: NoJad \ j.class

Quand je l'exercerai nouvellement compilé programme:

java NoJad.j

une exception est levée:

Exception dans le fil "principal" java.lang.VerifyError: (classe: NoJad/j, méthode: main signature: ([Ljava/lang/String;) V) Attend de trouver l'objet/tableau sur la pile Impossible de trouver la classe principale: NoJad.j. Le programme va sortir.

Je suis enclin à croire que c'est un bug dans l'exemple HelloWorld.j. Peut-être qu'un nouveau vérificateur a attrapé un bug ???

Note 1: le HelloWorld.class pré-compilé dans la distribution fonctionne comme prévu.

Note 2: J'utilise cette version de java java version "1.6.0_24" Java (TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot (TM) 64 bits serveur VM (build 19,1-b02, mode mixte)

Voici le fichier HelloWorld.j de la distribution:

; --- 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 

Répondre