6
votes

java.lang.classformatRorRor: valeur magique incompatible 218774561

Hé tout le monde, je fais mon premier applet pour Java aujourd'hui. J'utilise un sous-domaine sur un serveur et je ne sais pas quoi faire parce que je reçois cette erreur vraiment étrange.

J'ai mon pot dans le serveur et tout sauf chaque fois que j'essaie de charger l'applet, cela se produit.

java.lang.classformatRorRor: valeur magique incompatible 218774561 dans l'évolution du fichier de classe / EvolutionApplet

Lors de la recherche, il semble qu'une valeur magique incompatible signifie que quelque chose a été corrompu dans le .jar

Voici le site Web http://demeedgames.site88.net/main.html Le nom de pots est Evolution si vous avez besoin du code HTML, il est sur le site Web.

Edit: L'applet doit être lancé à partir d'Evolution.EvolutionApplet Not Evolution.Evolution


2 commentaires

Comment créez-vous votre pot?


Grande question. Affiche l'effort de recherche et des liens vers un exemple défaillant.


3 Réponses :


14
votes

Le Valeur magique d'une classe Java valide est 0xcafebabe Code>, qui est la valeur hexagonale de 3405691582 code>. Ceci est représenté par les 4 premiers octets du fichier. Mais vous obtenez 218774561 code> qui signifie que les caractères ASCII correspondent Cr code>, lf code>, et ! code> (le CRLF est une nouvelle ligne). Pour le voir vous-même, exécutez cette pièce de code:

int magic = 218774561;
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(magic);
System.out.println(new String(b.array()));


0 commentaires

0
votes

Balusc ci-dessus l'a vraiment expliqué. En plus de cela, vous pouvez vérifier ce lien thread: valeur magique incompatible 218774561 Erreur dans l'applet

Il semble que le codeBase et / ou l'attribut de code de votre étiquette de l'applet doivent être signalés correctement.


0 commentaires

1
votes

Le problème d'origine semble fixé maintenant. Je pourrais télécharger le pot à partir de http://demeedgames.site88.net/evolution.jar < H2> Mettre à jour

Il semble que la classe evolution.evolution n'est pas une applet! L'exécution de la ligne de commande à l'aide de: xxx

produit un cadre (avec un look très "rétro")! En tant que telle, oubliez ce non-sens de l'applet et Lancez le cadre d'un lien avec Java Web Démarrer .

Anciene réponse

otoh il jette maintenant un classnotfoundException que (après avoir inspecté le pot) me fait penser qu'il devrait être: xxx

Il y a deux modifications au code code à noter.

  1. L'extension .Class a été supprimée. Une matière mineure, l'ajout de celle-ci est tolérée, mais pas correcte.
  2. L'applet supprimé du nom de la classe.


0 commentaires