Applet java.lang.ClassNotFoundException: NewApplet.java

  • Themenstarter Themenstarter hfoiahfoi
  • Beginndatum Beginndatum
H

hfoiahfoi

Gast
Hallo,

ich bin mit dem Umgang von Applets nicht sehr vertraut. Deswegen schon mal Sorry für die (warscheinlich) deletantische Frage!

Ich muss für die FH eine kleine GUI bauen. Es sollen ca. 10 Fenster mit überwiegend Formularen werden. Dafür wolte ich nun Applets verwednen. In Netbeans gibt es dafür auch entsprechende Hilfen mit denen man per Drag&Drop sich schnell was zusammenclicken kann. In der Vorschau laufen die Applets auch ohne Probleme. Soweit so schön.

Mein Problem:
Immer wenn ich das Applet in die HTML-Seite einbinden möchte wird mir das Applet nicht angezeigt. Ich bekomme folgende Fehlermeldung:

Java Plug-in 1.6.0_24
Verwendung der JRE-Version 1.6.0_24-b07 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\Users\Horst
----------------------------------------------------
c: Konsole löschen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------


Laden: Klasse NewApplet.java nicht gefunden
java.lang.ClassNotFoundException: NewApplet.java
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.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)
Ausnahme: java.lang.ClassNotFoundException: NewApplet.java


Java läuft in meinem Browers. Habe ich auch überprüft.

Die Klasse NeApplet.java gibt es

Habe es mit diversen "How to Dos" probiert. Bekomme immer wieder den gleichen Fehler.

Kann mir jemand helfen?

Danke !!!
 
Es wäre auf jeden Fall nützlich, zu wissen, wie du das Applet einbindest und wie du NewApplet verwendest. Also ist das deine Main-Klasse oder leitest du deine Main-Klasse davon ab und so weiter... Vllt findet er nur die erste Klasse und der Rest fehlt oder er findet nichts dergleichen, weil der Pfad einfach falsch ist^^
 
Java Datein (*.java) müssen vorher in kompiliert werden (*.class) um sie auszuführen. Nicht die java Datei ins html einbinden sondern die class datei....

Habe es mit diversen "How to Dos" probiert.
welche? Das möchte ich sehen!

und wie hast du die Datei eingebunden?
 
Das Applet habe ich mit folgender Zeile in die HTML-Seite eingebunden:

[c]

<applet width="600" height="600" code="NewApplet.java" align="left" hspace="20" vspace="12">

[/c]

Hier mein Applet:

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewApplet.java
 *
 * Created on 25.05.2011, 11:56:09
 */

package frontend;

/**
 *
 * @author Horst
 */
public class NewApplet extends java.applet.Applet {

    /** Initializes the applet NewApplet */
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setLayout(new java.awt.BorderLayout());
    }// </editor-fold>


    // Variables declaration - do not modify
    // End of variables declaration

}

Ein HowToDo als Beispiel:

Applets
 
Die HTML-Seite:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>


<applet width="600" height="600" code="NewApplet.java" align="left" hspace="20" vspace="12">

</applet>
</body>
</html>
 
Ja stimmt. Leider bekomme ich nun eine andere Fehlermeldung der Name sei falsch. Das Paket heist "applettest" aber die Datei nicht.

Java Plug-in 1.6.0_24
Verwendung der JRE-Version 1.6.0_24-b07 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\Users\Horst
----------------------------------------------------
c: Konsole löschen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------


java.lang.NoClassDefFoundError: NewApplet (wrong name: applettest/NewApplet)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.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)
Ausnahme: java.lang.NoClassDefFoundError: NewApplet (wrong name: applettest/NewApplet)
 
Bei Applets musst du anders als beim normalen start über
Code:
java Klassennname
das .class weiterhin angeben.

HTML:
<applet width="600" height="600" code="applettest/NewApplet.class" />

Diese Zeile ist dann Korrekt, wenn sich im gleichen Ordner, in dem sich auch die HTML-Seite befindet, ein Ordner applettest befindet und in diesem wiederrum die NewApplet.class.
 
Ja stimmt. Leider bekomme ich nun eine andere Fehlermeldung der Name sei falsch. Das Paket heist "applettest" aber die Datei nicht.

Glaubst du nicht, dass du das einfach falsch einbindest? Warum zeigst du uns nicht wie du es jetzt einbindest. Wir haben vorher danach gefragt und dir gesagt dass du es falsch machst...

also dein link (Applets) sagt

<APPLET CODE="Appletname.class" WIDTH="348" HEIGHT="322" ALIGN="BOTTOM">

warum schreibst du
<applet width="600" height="600" code="NewApplet.java" align="left" hspace="20" vspace="12">
 
Sorry ich will hier keine Infos zurückhalten. Bin ja froh das ihr mir helft!

Ich habe versucht in der HTML-Datei das Applet mit einem absoluten Pfad an zu geben. Hat auch nix geholfen. Also so:

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
TODO write content
<applet width="600" height="600" code="C:\Users\Horst\Documents\NetBeansProjects\AppletTest\build\classes\applettest\NewApplet.class" align="left" hspace="20" vspace="12">
</applet>
</body>
</html>
 
Glaubst du nicht, dass du das einfach falsch einbindest? Warum zeigst du uns nicht wie du es jetzt einbindest. Wir haben vorher danach gefragt und dir gesagt dass du es falsch machst...

also dein link (Applets) sagt



warum schreibst du

Ich habe mich ja "nur" auf das how to do bezogen. Aber natrülich habe ich nicht alles 100% so gemacht. Mir dort nur angesehn wie die das vorstellen. Deswegen ist der Name von meinem Applet anders.
 
Bei Applets musst du anders als beim normalen start über
Code:
java Klassennname
das .class weiterhin angeben.

HTML:
<applet width="600" height="600" code="applettest/NewApplet.class" />

Diese Zeile ist dann Korrekt, wenn sich im gleichen Ordner, in dem sich auch die HTML-Seite befindet, ein Ordner applettest befindet und in diesem wiederrum die NewApplet.class.

Ja ich gebe auch das ".class" mit an.

Zu dem Pfad: Die HTML-Seite liegt im gleichen Ordner wie das Applet. Es müsste also ausreichen "nur" die Datei "NewApplet.class" selber an zu geben. Das habe ich versucht. Und bekomme oben genannte Fehlermeldung mit dem "appletttest/NewApplet.class" Das verstehe ich eben nicht. Wie beschrieben habe ich auch versucht das Applet mit einem absoluten Pfad an zu geben. Auch ohne Erfolg.

-----

Ich komme mir langsam echt ziemlich blöd vor. Es kann doch nicht so schwer sein! Oder stell ich mich hier wirklich so blöde an???
 
Ach ja... ich weiß es ist nicht einfach. Das Problem bei diesem Thema: Da muss alles ganz genau passen.

Also ich sehe ein par kleinigkeiten und bin mir jetzt nicht sicher ob du das schon geändert hast... poste nochmal, den html code und den java code.

Denn zb hier

Java:
package frontend;
 
/**
 *
 * @author Horst
 */
public class NewApplet extends java.applet.Applet {
hier befindet sich das Applet im package frontend und hier
<applet width="600" height="600" code="C:\Users\Horst\Documents\NetBeansProjects\AppletTest\build\classes\applettest\NewApplet.class" align="left" hspace="20" vspace="12">
in applettest. Versuch es mal ohne package
 
So ich bin das jetzt noch einmal Schritt für Schritt durchgegangen:

1. Ich benutzte als Entwicklungsumgebung Netbeans. Da werden automatisch packages gebaut.

2. Ich habe eine neues JAVA-Prajekt erstellt.

3. Ich habe eine HTML-Seite innerhalb des Packages "applettest" erstellt. Diese hat folgenden code:

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My Appletpage</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<APPLET CODE="NewApplet.class" WIDTH="348" HEIGHT="322" ALIGN="BOTTOM">
Ihr Browser ist nicht java-f&auml;hig!
</APPLET>
</body>
</html>

4. Ich habe in dem Package ein AppletForm erzeugt. Diese hat dann folgenden Code:

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewApplet.java
 *
 * Created on 25.05.2011, 16:04:26
 */

package applettest;

/**
 *
 * @author Horst
 */
public class NewApplet extends java.applet.Applet {

    /** Initializes the applet NewApplet */
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setLayout(new java.awt.BorderLayout());
    }// </editor-fold>


    // Variables declaration - do not modify
    // End of variables declaration

}

5. Nun habe ich die JAVA-Datei Compiliert. Dann entsteht bei Netbenas im Ordner Calsses.

6. Am Ende habe ich die HTML-Seite und die Datei NewApplet.class in ein Verzeichnis gepackt und die HTML-Seite ausgeführt.

7. Ich bekomme folgende Fehlermeldung:

Java Plug-in 1.6.0_24
Verwendung der JRE-Version 1.6.0_24-b07 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\Users\Horst
----------------------------------------------------
c: Konsole löschen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------


java.lang.NoClassDefFoundError: NewApplet (wrong name: applettest/NewApplet)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.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)
Ausnahme: java.lang.NoClassDefFoundError: NewApplet (wrong name: applettest/NewApplet)
 

Zurück
Oben