jar läßt sich nicht als Applet starten

Status
Nicht offen für weitere Antworten.

Raumsonde

Aktives Mitglied
Ich habe eine Memory.jar mit Eclipse erstellt.

Diese Applikation kann ich ohne Probleme durch Doppelclick auf die Memory.jar starten.

Nun habe ich versucht, die jar-Datei als Applet einzubinden
(Memory.jar und HTML-Datei befinden sich im gleichen Verzeichnis):

Code:
<html>
     <body>
           <applet code="Memory.class" archive="Memory.jar" width="400" height="200"></applet>
     </body>
</html>

Das funktioniert aber nicht. Wenn ich mit Firefox die html-Datei aufrufe, kommt die Meldung:

"Fehler, klicken Sie, um weitere Informationen zu erhalten."

Wenn ich klicke bekomme ich folgende Meldung:

Code:
Java Plug-in 1.6.0_11
Verwendung der JRE-Version 1.6.0_11 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\Users\ABC
----------------------------------------------------
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: Memory.class ist nicht öffentlich oder hat keinen öffentlichen Autor.
java.lang.IllegalAccessException: Class sun.plugin2.applet.Plugin2Manager can not access a member of class Memory with modifiers ""
	at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(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.IllegalAccessException: Class sun.plugin2.applet.Plugin2Manager can not access a member of class Memory with modifiers ""
Exception in thread "AWT-EventQueue-8" java.lang.NullPointerException
	at java.awt.LightweightDispatcher$3.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-8" java.lang.NullPointerException
	at java.awt.LightweightDispatcher$3.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-8" java.lang.NullPointerException
	at java.awt.LightweightDispatcher$3.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-8" java.lang.NullPointerException

(usw.)

Woran liegt das und was muß ich ändern?
 

HoaX

Top Contributor
Du kannst nicht einfach so mal ne Anwendung als Applet laufen lassen. Schau dir doch mal die entsprechenden Tutorials an, deine Hauptklasse muss von Applet erben.
 

L-ectron-X

Gesperrter Benutzer
Erbst du von Applet bzw. JApplet?
Ohne Code, kann man da nicht viel sagen.

Suche mal nach Appletcation.
Besser ist aber eine Webstart-Lösung.
 

Raumsonde

Aktives Mitglied
Danke für die Antworten.

@L-ectron-X
Ich habe mir deinen Text unter http://www.java-forum.org/de/viewtopic.php?t=18372
durchgelesen; scheint ja nicht ganz so einfach zu sein, Applet und Application
zu verbinden, wenn man schon ein fertiges Programm hat.


Aber vielleicht ist Webstart ja wie du meinst die bessere Alternative
(aber damit habe ich mich auch noch nicht beschäftigt).
 

L-ectron-X

Gesperrter Benutzer
Doch, eigentlich schon. Das Beispiel ist für den Zweck gedacht, wenn man ein fremdes Applet in eine Applikation einbinden möchte.
Einfacher geht's, wenn man den Quellcode hat. Dann braucht man einfach nur zwei Klassen. Eine, die von JApplet erbt und eine, die von JFrame erbt. Beiden fügst du dann einfach nur eine Referenz auf ein JPanel hinzu. Ein JPanel für beide Klassen.
In diesem JPanel ist dann das, was du im Applet oder dem Frame eigentich anzeigen möchtest. Fertig bist du. ;)
 

Raumsonde

Aktives Mitglied
Bisher habe ich:

Code:
public class Memory extends JFrame implements ActionListener
{
 /* Hier steht der Code meines Memoryspiels*/
 /*Memory hat zwei JPanels, die ich adde:*/
 //...
 add(pane1);
 add(pane2);
 //...
}

Habe versucht, folgende Klasse in die gleiche Datei einzufügen:

Code:
public class Memory2 extends JApplet
{
public void init() {}

public void paint(Graphics g)
{/* Was muß ich hier reinschreiben, damit mein JFrame der Klasse Memory gezeichnet wird? */}
	
public void stop() {}

}

Das führt zur Fehlermeldung:
"The public type Memory2 must be defined in its own file"

Muß ich tatsächlich zwei verschiedene Files für JFrame und JApplet haben?
Aber ich will doch EINE jar-Datei haben für Applet und Anwendung, wie geht denn das?

Beiden fügst du dann einfach nur eine Referenz auf ein JPanel hinzu

Muß ich jetzt meine JPanes (pane1,pane2) in eine extra Klasse auslagern?
Muß ich das in einer weiteren Datei machen?

Irgendwie komme ich nicht weiter.
 

L-ectron-X

Gesperrter Benutzer
Wie gesagt, du brauchst wenigstens 3 Klassen und eine HTML-Datei.

Mal eine Prinzipskizze:

Ein JFrame:
Code:
import javax.swing.*;

/** Ein Fenster für die Applikation. */
public class MemoryFrame extends JFrame {
   public MemoryFrame(String title) {
      super(title);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      add(new MemoryPanel(18)); //das Spielfeld hinzufügen
      
      pack();
      setLocationRelativeTo(null);
   }
   
   public static void main(String[] args) {
      new MemoryFrame("Memory").setVisible(true);
   }
}


Ein JPanel, welches als Hauptpanel den Inhalt hat:
Code:
import java.awt.*;
import javax.swing.*;

class MemoryPanel extends JPanel {
   JLabel cards[];
   MemoryPanel(int amount) {
      super(new GridLayout(0, 6, 10, 10));
      setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
      
      cards = new JLabel[amount];
      for(int i = 0; i < cards.length; i++) {
         cards[i] = new JLabel(new ImageIcon(getClass().getResource("/images/backside.png")));
         add(cards[i]);
      }
   }
}


Ein Applet für das Internet:
Code:
import javax.swing.*;

public class MemoryApplet extends JApplet {
   public void init() {
      add(new MemoryPanel(18));
   }
}


Diese 3 Dateinen legst du in kompilierter Form in eine ausführbare Jar-Datei.
Die kannst du dann per Doppelklick als Applikation auf deinem Desktop starten, oder ins Internet laden und in einer HTML-Datei als Applet aufrufen.

Die HTML-Datei kann so aussehen:
Code:
<html>
<head>
<title>MemoryApplet</title>
</head>
<body>
<h1>MemoryApplet</h1>
<applet archive="Memory.jar" code="MemoryApplet.class" width="980" height="640">
</applet>
</body>
</html>

Das Applet kannst du hier testen.
Das ausführbare Jar-File mit integriertem Applet und Quellcode kannst du hier herunterladen.
 

Raumsonde

Aktives Mitglied
Sehe ich das richtig, dass dann im Prinzip sämtliche Programmlogik in die
Memory-Panel-Klasse ausgelagert werden sollte, weil man sonst alles doppelt
(einmal in JFrame und einmal in der JApplet-Klasse) schreiben müßte?

Ich habe zwei JPanels in meinem Programm , eins mit zwei Buttons ("Neues Spiel"/"Spiel beenden")
und eins für das Memory-Feld.

Dann sollte ich wohl noch eine Extra-Klasse für die Programm-Logik machen,
damit beide JPanels darauf zugreifen können?

Also so:

Code:
//Datei und Klasse1:
public class MemoryFrame extends JFrame implements ActionListener {...}

//Datei und Klasse2:
public class MemoryApplet extends JApplet {...}

//Datei und Klasse3:
class MemoryPanel1 extends JPanel {/* Zugriff auf Funktionen.Funktion1() etc. aus Klasse Funktionen*/}

//Datei und Klasse4:
class MemoryPanel2 extends JPanel {/* Zugriff auf Funktionen.Funktion1() etc. aus Klasse Funktionen*/}

//Datei und Klasse5:
class Funktionen
{
 Funktion1(){...}
 Funktion2(){...}
}
 

Raumsonde

Aktives Mitglied
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
M Spaltenbreite läßt sich nicht anpassen Java Basics - Anfänger-Themen 0
M JNLP läßt sich nicht starten Java Basics - Anfänger-Themen 5
T Programm läßt sich nicht kompilieren Java Basics - Anfänger-Themen 4
I Gui läßt sich nicht beenden Java Basics - Anfänger-Themen 6
A URL läßt sich nicht öffnen Java Basics - Anfänger-Themen 6
H *.jar (1.6.0) läßt sich mit 1.5.X nicht starten Java Basics - Anfänger-Themen 4
R jar läßt sich nur im Original Ordner öffnen Java Basics - Anfänger-Themen 3
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Konsolenausgabe verschiebt sich Java Basics - Anfänger-Themen 8
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
IamArctic Quaxli Tutorial, Rotorblätter bewegen sich nicht mehr Java Basics - Anfänger-Themen 4
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
J CMD schließt sich automatisch Java Basics - Anfänger-Themen 5
S Was für Aufgaben könnten sich hier hinter verbergen? Java Basics - Anfänger-Themen 5
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
A Haben KNNs ein Gedächtnis, lernen etwas oder verändern sich, während sie nicht trainieren, aber aktiv sind? Java Basics - Anfänger-Themen 3
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
H Punkt bewegt sich auf einer Ellipse Java Basics - Anfänger-Themen 6
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
J Mein Programm beendet sich ohne mein Zutun Java Basics - Anfänger-Themen 9
J Zwei Klassen die sich gegenseitig referenzieren - Bad practice? Java Basics - Anfänger-Themen 4
N Bewegtes Objekt soll sich um eine Parallele bewegen Java Basics - Anfänger-Themen 0
K Zufalsszahl soll sich nicht wiederholen Java Basics - Anfänger-Themen 9
C Classpath Compiler lässt sich nur bedingt von Kommandozeile aus starten Java Basics - Anfänger-Themen 17
CptK Datentypen Objekt lässt sich nicht zu arraylist hinzufügen Java Basics - Anfänger-Themen 2
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
L Programm lässt sich nicht starten! Java Basics - Anfänger-Themen 1
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Hanschyo Programm schließt sich einfach Java Basics - Anfänger-Themen 2
L Panel verkleinert sich unerklärlicherweise Java Basics - Anfänger-Themen 7
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
x-tshainge Mein Programm lässt sich nicht Starten Java Basics - Anfänger-Themen 8
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
B Java -Turtle Grafik - kennt sich jemand damit aus? Java Basics - Anfänger-Themen 1
K Sysout wiederholt sich Java Basics - Anfänger-Themen 6
H Wieso öffnet sich der Texteditor? Java Basics - Anfänger-Themen 6
B Classpath Class lässt sich nicht öffnen Java Basics - Anfänger-Themen 3
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
T Schleife fährt sich fest Java Basics - Anfänger-Themen 14
E App lässt sich nicht starten Java Basics - Anfänger-Themen 8
ZotacZ Best Practice Lohnt es sich in GWT einzuarbeiten? Java Basics - Anfänger-Themen 4
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
S String ändert sich nicht Java Basics - Anfänger-Themen 2
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
P Compiler-Fehler Wo befindet sich hier der Fehler und warum? Java Basics - Anfänger-Themen 21
F MouseMotionListener - Objekt bewegt sich nicht Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
G Was hat es mit java.net.* auf sich? Java Basics - Anfänger-Themen 10
X Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben? Java Basics - Anfänger-Themen 5
J Kann eine .jar sich selber Löschen? Java Basics - Anfänger-Themen 5
OlafHD Java Uhrzeit aktualisiert sich nicht Java Basics - Anfänger-Themen 2
J Java Datei lässt sich nicht kompilieren Java Basics - Anfänger-Themen 3
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
W OOP Zwei Objekte beziehen sich aufeinander (Zirkelbezug)? Java Basics - Anfänger-Themen 4
X wie kann ich in bluej/java einene 2d array mit zahlen fuellen, so dass sich diese in der der zeilen Java Basics - Anfänger-Themen 2
S Variable (int) erhöht sich nicht richtig Java Basics - Anfänger-Themen 18
B Konsole schließt sich sofort Java Basics - Anfänger-Themen 8
Fishmeaker Methoden mit Methoden aufrufen - Programm hängt sich auf Java Basics - Anfänger-Themen 5
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
T Methoden [GELÖST ]Warum ruft sich die Methode von alleine auf? Java Basics - Anfänger-Themen 3
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
T Scanner lässt sich nicht importieren Java Basics - Anfänger-Themen 1
Lord.Djerun (Netbeans) Bei TimeUnit.Seconds,Sleep() hängt sich das komplette Programm auf.. Java Basics - Anfänger-Themen 8
P Programm lässt sich nicht starten - Klasse mit Hauptmethode nicht gefunden Java Basics - Anfänger-Themen 9
B Compiler-Fehler [Lejos] [RCX] Programm lässt sich nicht kompilieren Java Basics - Anfänger-Themen 5
N Variablen Array-Variable verändert sich Java Basics - Anfänger-Themen 12
HoloYoitsu BufferedReader verhält sich seltsam Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben