Applet Applet legt Browser lahm

McLing

Mitglied
Hallo,
bin neu hier und habe keine Ecke im Forum gefunden, wo meine Frage wirklich hinpasst. Also probiere ich's mal hier:
Habe ein Applet geschrieben, das eine logische Gatter-Schaltung darstellt, für die der Benutzer dann die Input-Signale verändern kann. Das Teil lief zu "Java 6"-Zeiten ohne größere Probleme. Unter Java 7 jedoch gibt's massiven Ärger:
  1. Wenn das Applet auf einer HTML-Seite nur einmal aufgerufen wird, läuft es (manchmal, bei frisch gebootetem Rechner oft) ohne Probleme und erwartungsgemäß.
  2. Wenn die HTML-Seite jedoch 2 Instanzen des Applets initialisieren soll, erscheint meist keinerlei Applet. In seltenen Fällen erscheint eine der beiden Instanzen und läuft erwartungsgemäß, aber nach längerer Zeit friert dann der Browser (IE 11) ein und muss mit dem Taskmanager entsorgt werden.
Ich habe das Applet mit Eclipse erstellt. Dort werden die Probeläufe beim Debuggen offenbar über den AppletViewer von JAVA (1.7) abgewickelt, wobei niemals irgend welchen Probleme zu Tage traten. Wenn ich dem AppletViewer direkt eine HTML-Seite übergebe, die 2(!) APPLET-Tags für 2 Aufrufe meines Applets (mit verschiedenen Schaltungs-Daten) enthält, dann öffnet er brav 2 Fenster, in denen die beiden Instanzen meines Applets munter und erwartungsgemäß vor sich hinwerkeln und korrekt auf User-Eingaben reagieren.

Welche zusätzlichen Anforderungen an Applets wurden mit dem Übergang zu JAVA 7 eingeführt, mal abgesehen von den erhöhten Sicherheitsanforderungen? Gibt es zusätzliche Dinge, die bei der Applet-Programmierung inzwischen zu berücksichtigen sind und unter JAVA 6 noch keine Rolle spielten?
MfG McLing.
 

McLing

Mitglied
Hi Ma~,

vielen Dank für die Hilfe beim Suchen! Es ist in der Tat eine ganze Menge im Netz zu finden zu diesem Thema, aber ich habe trotzdem große Schwierigkeiten, zu erkennen, was mir hier und jetzt wirklich helfen könnte.

Genauere Nachforschungen auf anderen Windows-Versionen und anderen Browsern lassen mich inzwischen vermuten, dass es sich bei meinem Problem gar nicht (mehr) um ein Java-Problem handelt, sondern um ein Microsoft-Problem. Ich habe mein Applet auf meinen GK-Informatik-Seiten eingesetzt, dort auf den "Hardware"-Seiten, die noch in der Entwicklung sind. Unter "Hardware | Wie rechnen Rechner?" wird das Applet (derzeit!) genau einmal eingesetzt, auf der Seite "Hardware |Logische Grundoperationen" werkeln hingegen 5 Instanzen dieses Applets parallel.

Allerdings nur, wenn der jeweilige Computer das zulässt. Mit Hilfe der großen Menge alter Rechner, die sich bei mir angesammelt hat, habe ich die folgenden Beobachtungen gemacht:
  • Ein XP-Rechner mit IE8 stellt alle Seiten fehlerfrei dar.
  • Ein Vista-Rechner mit IE9 macht ebenfalls keine Probleme.
  • Ein Win7-Rechner mit IE11 lässt höchstens 1 Instanz des Applets laufen; der Versuch, auf eine Seite mit mehreren Instanzen zu wechseln, wird mit einem einfrierenden Browser bestraft.
  • Auf einem anderen Win7-Rechner mit IE11 läuft wiederum alles klaglos.
  • Auf einem Win8.1-Laptop mit IE11 laufen alle Applets im Prinzip; beim Scrollen zerreißen jedoch die visuellen Darstellungen er einzelnen Applets.
Übrigens war auf allen Rechnern eine aktuelle Java7 JRE installiert, mindestens 7u51.

Ersetzt man unter Win7 den IE11 durch Firefox, dann verbessert sich die Lage. Noch stabiler und fast schon makellos arbeitet Chrome, speziell auf Win8.1. Insgesamt aber werde ich das Gefühl nicht los, dass mein Applet noch ziemlich buggy ist.

Beim Studium der von Ma~ genannten Seiten bin ich über die Forderung gestolpert, dass ein Applet stets alle belegten Ressourcen nach Gebrauch tunlichst wieder freigeben soll. Als alter PASCAL-Anwender war ich ja gewohnt, Destruktoren zu schreiben, die genau das tun; aber zu den ersten Dingen, die mir in Java beigebracht wurden, gehörte, dass gerade das nun nicht mehr nötig sei: die Garbage collection würde das jetzt schon alles automatisch tun!
Also mal eine konkrete Frage: Ist der folgende Code korrekt oder hinterlässt er Ressourcen-Reste? Speziell: Ist die Zeile 10 eigentlich nötig oder nicht?

Java:
	private boolean doLoadCircuitFile(URL fname) {
		InputStream inpstr;
		try {
			inpstr = fname.openStream();
			DocumentBuilderFactory factory =
				DocumentBuilderFactory.newInstance();
			factory.setValidating(false);
			DocumentBuilder builder = factory.newDocumentBuilder();
			Document document = builder.parse(inpstr); // returns DOM
			inpstr.close();
			
			NodeList objListNodeList = document.getElementsByTagName("ElementList"); //$NON-NLS-1$
			Node objListNode = objListNodeList.item(0);
			NodeList objNodes = objListNode.getChildNodes();
			cElemList.clear();  // Delete all objects in the list!
			
			// Rebuild all the GeoObj objects from the data file:
			int n = objNodes.getLength();
			for (int i = 0; i < n; i++) {
				Node actNode = objNodes.item(i);
				// We have to skip the formatting nodes (line break and tabs).
				if (!actNode.getNodeName().equalsIgnoreCase("#text")) { //$NON-NLS-1$
					CElem obj = CElemFactory.createObject((Element) actNode);
					if (obj != null) {
						cElemList.add(obj);
					}
				}
			}
			cElemList.adjustNextId();
			cElemList.connectAllCElements();
			return true;
		} catch (ParserConfigurationException e) {
			// This should never happen, so we just re-throw it at runtime.
			throw new RuntimeException("XML parser exception caught!", e); //$NON-NLS-1$
		} catch (MalformedURLException e) {
			System.err.println("Malformed URL:\n" + e.getMessage()); //$NON-NLS-1$
		} catch (IOException e) {
			System.err.println("IO-Exception:\n" + e.getMessage()); //$NON-NLS-1$
		} catch (SAXException e) {
			System.err.println("SAX-Exception:\n" + e.getMessage()); //$NON-NLS-1$
		}
		return false;
	}
MfG McLing.
 
Zuletzt bearbeitet:

McLing

Mitglied
Hi!
Nachdem sich hier niemand zu diesem vertrackten Thema äußern will, möchte ich wenigstens berichten, was sich bei mir inzwischen in dieser Sache getan hat.
  1. Zunächst hat sich herausgestellt, dass manche meiner obigen Diagnosen möglicherweise verkehrt waren, weil ich bei ihrer Erstellung nicht auf die Caches der jeweils verwendeten Browser geachtet habe. So haben die Browser eventuell mit alten Versionen des Applets gearbeitet statt mit der gerade frisch hochgeladenen neuesten.
  2. Sodann habe ich in meinem Applet vorsichtshalber/versuchsweise die JApplet-Schnittstelle vollständig ausprogrammiert, also auch diejenigen Funktionen ergänzt, die eigentlich nichts zu tun haben. Außerdem habe ich das Manifest des Applets um die von Oracle gewünschten Angaben ergänzt, und natürlich habe ich die JAR-Datei unterschrieben. In der aktuell verfügbaren Version scheinen die Seiten (unter Grundkurs Informatik, dort im Bereich "Hardware") erwartungsgemäß zu arbeiten.
  3. Der einzige Rechner, auf dem ich das Problem mit den mehreren parallelen Instanzen (m)eines Applets stabil verifizieren konnte (und kann), ist mein JAVA-Entwicklungsrechner (Win7-PC, mit OCZ-SSD als System-Laufwerk, i5-Prozessor, 8GB Speicher). Nachdem mir dieser aber einige Male dekorativ abgeschmiert ist (mit sofortigen Crash-Protokoll-Meldungen im DOS-Text-Modus), habe ich mich dazu durchgerungen, diese Maschine für krank zu halten. Werde sie von Grund auf neu installieren.
MfG McLing.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Applet: com.sun.deploy.security.BlockedException :-( Tools - Maven, Gradle, Ant & mehr 0
J Applet Aus anderer Browserinstanz Applet abfragen Tools - Maven, Gradle, Ant & mehr 2
P Linux Applet/Webstart Schriftunterschiede Tools - Maven, Gradle, Ant & mehr 3
E JMol -Applet Einbindung Tools - Maven, Gradle, Ant & mehr 0
T Applet Applet und IText wirft Incompatible magic value 1008813135 Fehler Tools - Maven, Gradle, Ant & mehr 6
P Applet Java Applet läuft im Browser nicht mehr (HTTPClient - NoClassDefFoundError) Tools - Maven, Gradle, Ant & mehr 3
P Applet Applet Signatur auf Server mit SSL-Zertifikat? Tools - Maven, Gradle, Ant & mehr 7
H Applet Applet wird nicht angezeigt Tools - Maven, Gradle, Ant & mehr 2
M Applet Applet funktioniert in Google Chrome nicht Tools - Maven, Gradle, Ant & mehr 2
O Applet "Anwendung kann nicht ausgeführt werden" Tools - Maven, Gradle, Ant & mehr 6
Q Applet Fehlermeldung bei Applet-Wechsel Tools - Maven, Gradle, Ant & mehr 4
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
R Applet friert Adresszeile des Firefox ein Tools - Maven, Gradle, Ant & mehr 2
K Applet als Jar-Datei in HTML einbinden Tools - Maven, Gradle, Ant & mehr 14
H Applet-Fehlermeldung Tools - Maven, Gradle, Ant & mehr 10
H Applet läuft nicht im Browser Tools - Maven, Gradle, Ant & mehr 3
Q Applet Applet läuft nicht im Browser Tools - Maven, Gradle, Ant & mehr 14
J Applet URL mittels TTS als Applet lesen lassen Tools - Maven, Gradle, Ant & mehr 40
F Applet verwischt, wenn Seite gescrollt wird Tools - Maven, Gradle, Ant & mehr 16
S Applet Applet mit C# öffnen: java.lang.SecurityException: Permission denied (WinXP) Tools - Maven, Gradle, Ant & mehr 8
J Applet-Quellcode einsehen Tools - Maven, Gradle, Ant & mehr 6
E Applet Applet und Datenbank Konzept Tools - Maven, Gradle, Ant & mehr 4
A Applet: Html Datei und Class Datei nicht im selben Verzeichnis Tools - Maven, Gradle, Ant & mehr 2
S Applet soll Textdatei von fremdem Server öffnen Tools - Maven, Gradle, Ant & mehr 8
E Java Applet bearbeiten Tools - Maven, Gradle, Ant & mehr 8
Quasar Wie signiere ich mein Applet richtig? Tools - Maven, Gradle, Ant & mehr 6
M mit Applet Javascript Aufrufen Tools - Maven, Gradle, Ant & mehr 2
S Applet and stop() method und gui blocked Tools - Maven, Gradle, Ant & mehr 4
A Applet Applet startet nach Einbinden auf Website nicht Tools - Maven, Gradle, Ant & mehr 4
A Applet, xxx.jar und hsqldb Tools - Maven, Gradle, Ant & mehr 4
T Webstart oder Applet Tools - Maven, Gradle, Ant & mehr 2
H Applet applet neu laden im browser Tools - Maven, Gradle, Ant & mehr 10
M Applet neustart Tools - Maven, Gradle, Ant & mehr 5
S Applet request unter Linux Tools - Maven, Gradle, Ant & mehr 14
S Applet GUI nicht im Webbrowser sichtbar Tools - Maven, Gradle, Ant & mehr 5
S Mittel Applet Datei an ein Webserver übertragen Tools - Maven, Gradle, Ant & mehr 2
M Applet in ClientServer J2EE Anwendung debugen Tools - Maven, Gradle, Ant & mehr 6
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
M Java3D Applet flackert wenn ein Button(HTML) gedrückt wird Tools - Maven, Gradle, Ant & mehr 11
S Policy mit Signiertem Applet verteilen Tools - Maven, Gradle, Ant & mehr 9
F Applet findet include nicht Tools - Maven, Gradle, Ant & mehr 15
L PHP + Java Applet Kommunikation Tools - Maven, Gradle, Ant & mehr 9
C Probleme mit Applet mit SQL im Browser Tools - Maven, Gradle, Ant & mehr 4
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
G Textfile in Applet laden möglich? Tools - Maven, Gradle, Ant & mehr 2
A Java-Applet Sandbox deaktiviren? Tools - Maven, Gradle, Ant & mehr 2
B Java-Applet geht nicht (auf dem Webserver) Tools - Maven, Gradle, Ant & mehr 9
P Applet läuft nicht in Browser Tools - Maven, Gradle, Ant & mehr 21
V JAR-Datei eines (J)Applet funktioniert nicht - Help! Tools - Maven, Gradle, Ant & mehr 19
S Java Applet per Klick starten? Tools - Maven, Gradle, Ant & mehr 6
S Applet geht nicht Tools - Maven, Gradle, Ant & mehr 25
J Applet signieren Tools - Maven, Gradle, Ant & mehr 2
H Applet - Geschicklichkeitsspiel programmieren Tools - Maven, Gradle, Ant & mehr 16
U Jar funktioniert nicht als Applet Tools - Maven, Gradle, Ant & mehr 3
C Applet Frage Tools - Maven, Gradle, Ant & mehr 4
M Java Applet - enforce use of older JRE Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
W Webseite aus Applet öffnen Tools - Maven, Gradle, Ant & mehr 3
lumo Applet - resize Tools - Maven, Gradle, Ant & mehr 7
Icewind Applet reagiert nach neu laden der Webseite nicht mehr verlässlich auf KeyEvents Tools - Maven, Gradle, Ant & mehr 6
R Applet mit MySQL Tools - Maven, Gradle, Ant & mehr 3
A jar datei trotz zertifikat nich aus applet ausführbar Tools - Maven, Gradle, Ant & mehr 4
F Fehlende Applet Rechte Tools - Maven, Gradle, Ant & mehr 12
N [Applet] Button wir nach 5 secs Unsichtbar Tools - Maven, Gradle, Ant & mehr 2
N jar -> applet wie setzt man das am leichtesten um Tools - Maven, Gradle, Ant & mehr 7
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
F applet als JAR -> AccessControlException Tools - Maven, Gradle, Ant & mehr 3
grudge File in Applet laden Tools - Maven, Gradle, Ant & mehr 4
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
R Applet mit bestimmter JRE ausführen Tools - Maven, Gradle, Ant & mehr 9
traysa Wie binde ich ein applet in eine jsp Tools - Maven, Gradle, Ant & mehr 3
D Mit dem Applet das DOM manipulieren? Tools - Maven, Gradle, Ant & mehr 3
ABstraCT Applet getCodeBase() Zugriff auf darüberliegendenden Ordner ? Tools - Maven, Gradle, Ant & mehr 1
S Java-Applet Steuerung IO Karte am Drucker-Port Tools - Maven, Gradle, Ant & mehr 4
P URL aus Applet öffnen? Tools - Maven, Gradle, Ant & mehr 7
ABstraCT Mit Applet in ne Datei auf seinem Server schreiben. Tools - Maven, Gradle, Ant & mehr 10
E Verzögerung beim Refresh (F5) mit einem Applet verursachen Tools - Maven, Gradle, Ant & mehr 16
deetee Applet Frage Tools - Maven, Gradle, Ant & mehr 2
S Fehler in einem Upload - Applet (nicht gelöst!!) Tools - Maven, Gradle, Ant & mehr 2
G Variable an zweites Applet übergeben Tools - Maven, Gradle, Ant & mehr 3
M Dringend: Sehr kompliziertes Applet Problem Tools - Maven, Gradle, Ant & mehr 4
O Javascript kommuniziert mit Applet? Tools - Maven, Gradle, Ant & mehr 2
H Spracherkennung mit Applet / Policy bzw. Security Fehler Tools - Maven, Gradle, Ant & mehr 2
zilti Nerviger Hinweis bei Applet- und WS-Fenstern - wieso? Tools - Maven, Gradle, Ant & mehr 3
S Datei-/Verzeichniszugriff von signiertem Applet Tools - Maven, Gradle, Ant & mehr 6
G Signiertes Applet installieren? Tools - Maven, Gradle, Ant & mehr 3
G Applet mit Parameter aus JavaScript Tools - Maven, Gradle, Ant & mehr 5
A Applet Maus Koordinaten ohne MouseMotionListener Tools - Maven, Gradle, Ant & mehr 3
K Applet in Eclipse funktioniert, im Browser nicht Tools - Maven, Gradle, Ant & mehr 7
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
S Applet pai.nt? Tools - Maven, Gradle, Ant & mehr 3
S Applet und File-Object? Tools - Maven, Gradle, Ant & mehr 9
T Applet soll Datei lesen (darf es aber nicht.) Tools - Maven, Gradle, Ant & mehr 3
P Java-Applet funktioniert unter WINXP nicht Tools - Maven, Gradle, Ant & mehr 2
N Java 1.6 Applet auf älteren Versionen ausführbar? Tools - Maven, Gradle, Ant & mehr 4
G Signiertes Applet prüfen? Tools - Maven, Gradle, Ant & mehr 3
H Problem mit einen Applet Tools - Maven, Gradle, Ant & mehr 5
J Java Applet bei mouseover mit Tooltip Tools - Maven, Gradle, Ant & mehr 3
G Applet Security Problem Tools - Maven, Gradle, Ant & mehr 3
G Applet - Parameter einlesen Tools - Maven, Gradle, Ant & mehr 3

Ähnliche Java Themen

Neue Themen


Oben