6
votes

ERREUR: JAVA.LANG.NOCLASSDEFFONDROR: CHASE (Nom incorrect: Pong / Chase)

J'ai créé un programme d'applet utilisant Eclipse IDE. Maintenant, je crée un fichier .html comme ci-dessous: xxx pré>

Lorsque je exécute ce fichier, l'erreur im obtenue est la suivante: p>

package pong;


import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;



public class Chase extends Applet implements Runnable
{ ...  }


3 Réponses :


8
votes

Il n'y a pas de nom de classe Chase code> dans votre path.

Nom incorrect code> Spécifie qu'il pourrait y avoir une erreur avec le nom de classe avec le package spécifié. P>

Si votre classe déclare code> package code> par exemple p> xxx pré>

puis dans HTML donner a.myapplet code> p> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P > mise à jour forte> p>

dans votre cas, il semble p>

P>

Aussi la structure DIR devrait être P>

- - - - -
      |
      |-your html file
      |-pong folder
          |
          |- Chases.class


5 commentaires

Essayé d'utiliser l'aide. L'erreur somne ​​toujours comme suit: OAD: classe pong / chasse.class introuvable. java.lang.classnotfoundExceptionException: pong.chase.class à sun.plugin2.appllet.applet2classloader.findclass (source inconnue) sur java.lang.classloader.loadclass (source inconnue) sur java.lang.classloader.loadclass (source inconnue) à sun.plugin2.applet.plugin2classloader.loadcode (source inconnue) .... etc


Oui, le nom du paquet est "pong" et après les étapes ci-dessus, cela fonctionne, lorsqu'il est exécuté de manière indépendante. Cependant, lorsque je dois ajouter un code HTML personnalisé dans une page Web personnalisée d'un site Web, l'erreur est identique que ci-dessus.


Quand je dois ajouter un code HTML personnalisé dans une page Web personnalisée d'un site Web s'il vous plaît expliquer


Les créateurs de site Web basés sur le widget fournissent un widget dans lequel nous pouvons faire glisser un widget de code HTML dans notre page Web et ajouter un extrait de code HTML dans celui-ci. C'est là que je veux ajouter le code d'applet. De sorte que l'applet est excusable sur la page.


ok alors vous devez également fournir classe dans la même structure présentée ci-dessus dans ce serveur afin de charger l'applet de chargement



0
votes

Vous avez oublié la pièce d'emballage dans votre étiquette d'applet:

<APPLET CODE="pong.Chase.class" width=500 height=400>
</APPLET>


0 commentaires

2
votes

Je pense que le problème est fondamentalement car @jigar Joshi a noté, mais avec une légère fronçon. Je pense que vous avez une classe dont la FQN est "Pong.chase", mais vous avez configuré le point de classe afin que le répertoire contenant "CHASE.CLASS" soit sur la classe de classe. Ensuite, vous avez dit à l'applet Chargeur de rechercher une classe comme "Chase.class".

Le chargeur de classe a trouvé le fichier bytecode, mais lorsqu'il tentait de le charger, il a remarqué que les classes FQN sont "pong .Chase "plutôt que" Chase "... comme déduit le nom que vous avez donné. Ergo ... un noclassduffounderror , avec un message qui vous indique que le nom de la classe est incorrect .

Le correctif est de vous assurer que le parent Le répertoire du répertoire "pong" se trouve sur la classe de classe, et utilisez: xxx

alternativement - utilisez l'attribut codebase

Alternativement 2 - Débarrassez-vous de la déclaration de votre classe Java.

Alternativement 3 - Utilisez l'élément . L'élément est obsolète.

référence: http://www.w3.org/tr/html401/truc/Object.html


2 commentaires

L'alternative 2 fonctionne sans aucun doute. Je dois ajouter cet extrait de code d'applet dans une page Web. Une fois ajouté, l'erreur est la même que plus tôt. Mais lorsque le fichier HTML est exécuté de manière indépendante est fonctionne. Pourquoi est-ce tellement?


@Gamdroid - Je soupçonne que c'est la structure de répertoire; Voir la réponse mise à jour de @jigar Joshi.