Wikipedia · einfach zusammengefasst · Stand
Java-Applet
Ein Java-Applet ist ein Computerprogramm, das mittels Java-Technologie erstellt und normalerweise in einem Webbrowser ausgeführt wird.
Inhalt5 Abschnitte
Grundprinzip und Ausführung
Ein Java-Applet ist ein mit Java-Technologie erstelltes Computerprogramm, das normalerweise in einem Webbrowser ausgeführt wird. Es sollte Programme innerhalb von Webseiten ermöglichen, die auf der Client-Seite laufen und unmittelbar mit Benutzern interagieren können, ohne Daten an einen Server senden zu müssen. Ende der 1990er Jahre trugen Applets zum Erfolg und zur schnellen Verbreitung von Java bei.
Davon zu unterscheiden sind Servlets: Auch sie sind Java-Programme, laufen jedoch auf dem Server. Für ein Applet braucht der Browser eine Java-VM (Java Virtual Machine), also die Laufzeitumgebung. Sie konnte im Browser integriert sein, als nachinstallierbares Java-Plug-in wie die JRE von Oracle vorliegen oder – bei historischen Opera-Versionen – direkt vom Browser angesprochen werden.
Browserunterstützung
Integrierte Java-VMs entsprachen nur dem Stand des JDK 1.1 und sind veraltet; eine aktuelle VM konnte nachinstalliert werden. Internet Explorer 3, 4, 5 und 5.5 enthielten Java 1.1.4 ohne RMI und JNI. Die Weiterentwicklung und der Vertrieb der Microsoft Java Virtual Machine (MSJVM) wurden eingestellt. Netscape Navigator 3.x und 4.x enthielten Java 1.1.5.
Bei Mozilla und darauf basierenden Browsern wie Netscape Navigator 6.x und 7.x sowie Mozilla Firefox, außerdem bei Opera, Apple Safari und Internet Explorer ab Version 6 musste für Applets eine VM nachinstalliert werden.
Einbindung und Programmablauf
Seit 2015 erfolgt die Einbindung in HTML mit dem object-Element; es ist dem embed-Element vorzuziehen. Das frühere applet-Element gilt seit HTML4 als deprecated und seit HTML5 als obsolete.
Alle Java-Applets werden von java.applet.Applet abgeleitet. Anders als Java-Anwendungen besitzen sie keine Methode main(). Wichtige Methoden sind: init(), einmalig beim ersten Laden; start(), jedes Mal beim Sichtbarwerden; paint(…), die Zeichenmethode für die Anzeige; stop(), wenn das Applet verdeckt wird; und destroy(), wenn es aus dem Hauptspeicher entladen wird.
Für die Benutzeroberfläche können Swing oder AWT verwendet werden. Das in HTML eingebettete Fenster lässt sich jedoch nicht programmgesteuert schließen; zusätzliche Fenster können geöffnet werden.
Sicherheit und Einsatz
Da Applets auf dem Rechner der Anwender laufen, sind sie wie jedes lokal ausführbare Programm ein Sicherheitsrisiko, etwa durch einen Java Drive-By Exploit. Sie laufen aber in einer abgeschotteten Laufzeitumgebung, der Sandbox. Ein Risiko durch böswillige Applets besteht nur bei einer fehlerhaften Sandbox. Wegen zahlreicher Sicherheitslücken blockieren neuere Java-Versionen nicht zertifizierte Applets; Mozilla Firefox stellte mit Version 52 die Java-Unterstützung vollständig ein.
Unter Beachtung der Sicherheitsregeln bietet die Applet-Technologie den vollen Funktionsumfang der J2SE-API. Sie eignet sich besonders für gepflegte Unternehmensnetze, in denen alle Anwender dieselbe Java-Version nutzen. Mit Servlets oder Application Servern konnten komplexe Anwendungen entstehen, die keine lokale Softwareinstallation benötigen und mit unterschiedlichen Browsern und Betriebssystemen laufen. Applets wurden beispielsweise bei Fotodienstleistern für Upload und Bearbeitung eingesetzt.
Nachteile im Internet und bei langsamen Anschlüssen sind die Größe der JRE von 12,5 MB (Stand JRE 6.0), die Initialisierungszeit der JVM sowie Download und Initialisierung des Applets. Der Java-Kernel aus Java SE 6 Update 10 kann die Ladezeit der JVM deutlich verkürzen. Inhalte von Applets werden nicht von Suchmaschinen erfasst.
Hybride Applets und Entfernung
Wird ein Applet um eine main-Methode erweitert, kann seine jar-Datei per Doppelklick auch als gewöhnliche Java-Anwendung gestartet werden. Das erleichtert Tests ohne Einbindung in einen Browser. Als Anwendung läuft es jedoch nicht in einem geschützten Bereich, sondern erhält – abgesehen von lokalen Sicherheitsbeschränkungen – grundsätzlich Vollzugriff auf das System. Dadurch kann ein bösartiges Applet problemlos Schadcode ausführen.
Appletbezogene Klassen der Java-Standardbibliothek sind seit Version 9 als deprecated markiert und erzeugen beim Kompilieren eine Warnung. Oracle entfernte ab Version 11 das Deployment für Applets. In Version 26 werden Applets vollständig aus der Standardbibliothek entfernt.