Erreur java.lang.NoClassDefFoundError: applet [Résolu/Fermé]

Signaler
Messages postés
43
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
18 janvier 2012
-
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
-
Bonjour,

je sais que la questions a deja été posée, mais j'ai esseyé tout ce qu'il y avait dans les forums, rien ne marche:

l'applet n'est pas reconnue dans mon navigateur et j'ai l'erreur:

java.lang.NoClassDefFoundError: applet1 (wrong name: package1/applet1)

mon applet:

import java.applet.*;

import java.awt.*;

import java.util.*;
public class applet1 extends Applet{

public void paint(Graphics g) {

g.drawString ("Je suis une Applet Java!", 15, 15);

}
}

ma page html:

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
TODO write content
<APPLET CODE=applet1.class WIDTH=200 HEIGHT=100 ALIGN=MIDDLE></APPLET>
</body>
</html>

j'ai copié la classé générée dans le même repertoire que la page web, toujours rien,

Je suis sur netbeans 6.8 et j'utilise glassfish integré dans netbeans.

L'applet n'est qu'un exemple, j'ai voulu esseyé un exemple simple rien que pour tester

Merci pour votre aide (c'est urgent)

4 réponses

Messages postés
43
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
18 janvier 2012
3
je te remercie beaucoup de m'avoir répondu, finalement c'etait un probleme d'ajout de quelque chose au niveau du html.

voila pour ceux qui ont en besoin:

il fallait ajouter le chemain de l'applet et l'instruction codebase qui determine le repertoire par lequel il fallait passer a partir du fichier html pour retrouver l'applet, voila ce que ça donne dans mon cas:

<APPLET CODE="repertoire_de_'applet/MyGame.class" WIDTH=800 HEIGHT=600 codebase="." >

J'ai mis le fichier html appellant l'applet dans le même repertoire que le dossier contenant l'applet, et j'ai rajouté codebase=".' pour dire qu'il est dans le même repertoire,

voila, je me demande pourquoi ça n'avait pas marché avant, il a fallu que je fasse un tour à la fac, que je demande a tous les passants, et que je trouves finalement le problème seule lol

Enfin voila, je peux le mettre en résolu maintenant, encore merci pour ton aide :)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57000 internautes nous ont dit merci ce mois-ci

Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
412
Héhé bizarre que le mien marche chez moi sans le codebase alors :)

Chouette que tu ai résolu ton problème et bonne continuation ;)
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
412
Si tu as cette erreur c'est tout simplement que Java ne trouve pas une des classes nécessaires au bon déroulement de ton programme.

Commence par mettre une majuscule au nom de la classe de ton applet1 (Applet1 par exemple), ensuite appelle le fichier java ainsi que le .class de la même façon.

Voici un tout vieil applet que j'avais fait mais qui fonctionnait (pas super bien mais il tourne au moins :P)

Merci de ne pas critiquer, c'était mes premiers pas en programmation Java et je n'ai plus fait d'applets depuis ^^


/******************************************************************************* 
* Petit programme Java inspiré par les applets "Neko" et "Keys" de la formule  * 
* "Teach Java in 21days", créé par Scriptiz le 14/03/2004.                         * 
*******************************************************************************/ 

import java.awt.Graphics; 
import java.awt.Event; 
import java.awt.Font; 
import java.awt.Color; 
import java.awt.Image; 

public class MyGame extends java.applet.Applet { 

    Image currimg; 
    Image test1; 
    Image test2; 
    int currx; 
    int curry; 
    double count; 
    double swit; 
    long flip; 
    long chg; 

    public void init() { 
 count = Math.random(); 
 swit = 0.5; 
 flip = 1; 
 chg = 3; 
     currimg = getImage(getCodeBase(), "images/stop.gif"); 
 test1 = getImage(getCodeBase(), "images/sleep1.gif"); 
 test2 = getImage(getCodeBase(), "images/stop.gif"); 
        currx = (size().width / 2) -8;  // default 
        curry = (size().height / 2) -16; 

        setBackground(Color.white); 
        setFont(new Font("Helvetica",Font.BOLD,36)); 
    } 

    public boolean keyDown(Event evt, int key) { 
        switch (key) { 
        case Event.DOWN: 
     if (currimg == test2) { 
         currimg = getImage(getCodeBase(), "images/sleep1.gif"); 
     } else { 
         currimg = getImage(getCodeBase(), "images/stop.gif"); 
     } 
            break; 
        case Event.UP: 
     if (currimg == test1) { 
         currimg = getImage(getCodeBase(), "images/awake.gif"); 
     } else { 
         currimg = getImage(getCodeBase(), "images/stop.gif"); 
     } 
            break; 
             
        case Event.LEFT: 
     if (flip > chg) { 
                count = Math.random(); 
                chg += 3; 
         if (count < swit) { 
             currimg = getImage(getCodeBase(), "images/left1.gif"); 
         } else { 
             currimg = getImage(getCodeBase(), "images/left2.gif"); 
         } 
        } else { 
     flip+= 1; 
        } 
 currx -= 5; 
 break; 

        case Event.RIGHT: 
     if (flip > chg) { 
                count = Math.random(); 
                chg += 3; 
         if (count < swit) { 
             currimg = getImage(getCodeBase(), "images/right1.gif"); 
         } else { 
             currimg = getImage(getCodeBase(), "images/right2.gif"); 
         } 
        } else { 
     flip+= 1; 
        } 
 currx += 5; 
 break; 
  
        default: 
            currimg = getImage(getCodeBase(), "images/stop.gif"); 
        } 

        repaint(); 
        return true; 
    } 

    public void paint(Graphics g) { 
        g.drawImage(currimg, currx, curry, this); 
    } 
} 


Et la page en "vieil" HTML :P :

<HTML> 
<HEAD> 
<META NAME="author" CONTENT="g10m">  
<TITLE>My Game</TITLE> 
</HEAD> 
<BODY> 
<h1>Voici mon petit programme Java.</h1> 
<HR> 
<h2>Cliquez ci-dessous pour lancez l'applet puis appuyer sur une touche quelconque.</h2> 
<HR> 
<table border=2> 
<tr><td> 
<APPLET CODE="MyGame.class" WIDTH=800 HEIGHT=600> 
There would be an applet here if your browser 
supported Java. 
</APPLET> 
</tr></td> 
</table> 
</BODY> 
</HTML>


"The most successful method of programming is to begin a program as simply as possible, test it, and then add to the program until it performs the required job." -- PDP8 handbook, Pg 9-64
Messages postés
43
Date d'inscription
dimanche 24 août 2008
Statut
Membre
Dernière intervention
18 janvier 2012
3
Hello,

Merci pour ta reponse mais j'ai toujours le même problème :(

j'ai crée ton applet sous eclipse, le fichier .class a été généré dans le bin de mon projet, j'ai crée ta page html dans ce même dossier (le bin) mais quand je lance la page j'ai un carré de l'applet et dedand j'ai : erreur: cliquez pour obtenir plus d'informations.
Bien sure je clique et j'ai cette erreur:

java.lang.NoClassDefFoundError: MyGame (wrong name: test1/MyGame)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception : java.lang.NoClassDefFoundError: MyGame (wrong name: test1/MyGame)

je ne comprend pas ce qui se passe, que dois-je faire pour que ça marche???

Merci
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
412
Vachement bizarre je ne sais pas t'aider plus au niveau des applets :S