JApplet Probleme

KennYblu3

Mitglied
Ich habe ein Problem beim aufrufen eines Applets als jar.

Das Programm besteht aus 3 Klassen Applet1.java Pane1.java Pane2.java.
Nach dem ich daraus class Dateien gemacht hab mit
Code:
javac Applet1.java Pane1.java Pane2.java
erhalte ich 5 Dateien:
Applet1$1.class Applet1$2.class Applet1.class Pane1.class Pane2.class

diese dateien liegen in dem Ordner applet_test1_changePane.
Meine HTML Datei dazu sieht so aus:
HTML:
<html>
<head>
</head>
<body>
<applet code="applet_test1_changePane.Applet1.class"  width=800 height=800>
</applet>
</body>
</html>

so funktioniert es ohne Probleme.

Nun wollte ich die .class dateien in einer jar haben.
Habe es den mit den beiden möglichkeiten probiert:
Code:
jar -cfv applet1.jar applet_test1_changePane/Applet1.class applet_test1_changePane/Applet1\$1.class applet_test1_changePane/Applet1\$2.class applet_test1_changePane/Pane1.class applet_test1_changePane/Pane2.class

und
Code:
jar -cfv applet1.jar applet_test1_changePane/Applet1.class applet_test1_changePane/Pane1.class applet_test1_changePane/Pane2.class

die HTML Datei sah dann so aus
HTML:
<html>
<head>
</head>
<body>
<applet code="applet_test1_changePane.Applet1.class" archive="applet1.jar" width=800 height=800>
</applet>
</body>
</html>

HTML und jar datei liegen im gleichen verzechnis. Die Jar datei hat einen unter Ordner "applet_test1_changePane" und ich bekomme einen Fehler beim aufruf der HTML:
Code:
Laden: Klasse applet_test1_changePane.Applet1.class nicht gefunden
java.lang.ClassNotFoundException: applet_test1_changePane.Applet1.class

Was mache ich falsch ? Wo liegt mein Fehler bin am verzweifeln.
 
Zuletzt bearbeitet:
hab nochmal alle dateien neu compliert jetzt erhalte ich die fehler Meldung
Code:
java.lang.ClassFormatError: Incompatible magic value 1347093252 in class file Applet1

egal ob in der jar die Applet$1.class und Applet$2.class datei drin ist oder nicht.

Wie kann das ueber haupt sein das er aus 3 .java dateien 5 .class dateien macht ?
 
Zu deinen Problem kann ich dir leider nichts sagen, aber
Wie kann das ueber haupt sein das er aus 3 .java dateien 5 .class dateien macht ?
Jede innere/anonyme Klasse wird als extra class Datei speichert. Die erkennst du an dem $ im Dateinamen.
Code:
Applet$1.class
ist also die erste anonyme Klasse (z.b. nen direkt zugewiesener ActionListener) in der Klasse Applet.
(Als Klassenname sollte man übrigens nie Klassen aus der Java StandardAPI verwenden.)
 
Code:
java.lang.ClassFormatError: Incompatible magic value 1347093252 in class file Applet1
Es sieht so aus, als ob du mit einem aktuellen Compiler dein Programm übersetzt, dann aber mit einer älteren VM das Programm ausführst.

Wie kann das ueber haupt sein das er aus 3 .java dateien 5 .class dateien macht ?
Es handelt sich hier um so genannte anonyme Klassen, die durch Verschachtelung entstehen. Sie haben keinen Namen und der Compiler erzeugt dann selbst die passenden Namen.
 

Neue Themen


Zurück
Oben