J'ai un problème pour exécuter un fichier HelloWorld.j nouvellement compilé à partir de la distribution jasmin-2.4.
J'ai téléchargé jasmin-2.4. Je peux compiler correctement en utilisant :
java -jar jasmin.jar exemples \HelloWorld.j
le résultat est le suivant :
Généré : NoJad \j.class
Lorsque j'exécute le programme nouvellement compilé :
java NoJad.j
une exception est levée :
Exception dans le thread "main" java.lang.VerifyError : (class : NoJad/j, méthode : main signature : ([Ljava/lang/String ;)V) S'attend à trouver un objet/réseau sur la pile Impossible de trouver la classe principale : NoJad.j. Le programme se termine.
J'ai tendance à croire qu'il s'agit d'un bogue dans l'exemple HelloWorld.j. Peut-être qu'un nouveau vérificateur a détecté un bug ?
Note 1 : le fichier 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" Environnement d'exécution Java(TM) SE (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
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