3 votes

L'exemple Jasmin HelloWorld échoue

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

4voto

BSalita Points 933

Le problème est que le fichier HelloWorld.j est faux. Voir ce fil de discussion : http://sourceforge.net/projects/jasmin/forums/forum/349052/topic/3330588

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X