Einbinden von Java-Applets in HTML-Dateien: Unterschied zwischen den Versionen
K (→Einbinden per Javascript) |
K (hat „Einbinden von Applets in HTML-Dateien“ nach „Einbinden von Java-Applets in HTML-Dateien“ verschoben) |
(kein Unterschied)
|
Version vom 6. April 2014, 13:04 Uhr
Damit ein Webbrowser Java-Applets zur Anzeige bringen und ausführen kann, gibt es derzeit zwei verschiedene HTML-Tags.
Inhaltsverzeichnis
Das Object-Tag
Das Object-Tag zur Einbindung von Multimedia-Elementen in Webseiten wurde mit HTML 4.0 bzw. XHTML 1.0 in den Standard übernommen und löst nun das Applet-Tag ab. Das Applet-Tag gilt als veraltet und sollte nicht mehr verwendet werden.
Einbinden einer Applet-Klasse
Um ein Applet mit dem Object-Tag in eine Webseite einzubinden, werden folgende Zeilen notiert:
<object classid="java:MeinApplet.class" codetype="application/java-vm" width="800" height="600"> </object>
Applets in Packages
Normalerweise werden Java-Klassen in Packages zusammen gefasst. Bei der Erzeugung des Applet-Tags gibts dann einige Dinge zu beachten. So muss nun auch der Name des Packages in das code-Attribut.
Beispiel:
<object classid="java:applets.MyApplet.class" codetype="application/java-archive" width="400" height="300"> </object>
Das Applet deklariert ein hier ein Package applets, also muss die class-Datei im Verzeichnis applets liegen. Die HTML-Datei muss oberhalb von applets, d.h. eine Verzeichnisebene über applets liegen.
Einbinden eines Applets aus einer Jar-Datei
Applets können auch in einer Jar-Datei zusammengefasst und komprimiert werden, was einerseits die Übertragung verkürzt, andererseits bspw. zum Signieren von Applets erforderlich ist.
<object archive="MeinJar.jar" classid="java:MeinApplet.class" codetype="application/java-vm" width="800" height="600"> </object>
Einbinden mehrerer Jar-Dateien
Manchmal benötigt man externe Bibliotheken, bspw. XML-Bibliotheken oder LookAndFeel's, die in einer Jar-Datei ausgeliefert werden.
Mehrere Jar-Dateien werden im archive-Attribut mit Kommata getrennt aufgelistet.
<object archive="MeinJar.jar, ExterneJar.jar" classid="java:MeinApplet.class" codetype="application/java-vm" width="800" height="600"> </object>
Einbinden eines Applets aus einem anderen Verzeichnis
Beispiel 1
Wenn das Applet nicht auf dem gleichen Rechner oder in einem anderen Verzeichnis (unabhängig von deklarierten Packages) wie die einbettende HTML-Datei liegt, kommt das codebase-Attibut ins Spiel. In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens applets - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.
<object codebase="../applets" archive="MeinJar.jar" classid="java:MeinApplet.class" codetype="application/java-vm" width="800" height="600"> </object>
Beispiel 2
<object codebase="./applets" archive="MyAppletLib.jar" classid="java:applets.MyApplet.class" codetype="application/java-archive" width="400" height="300"> </object>
In diesem Beispiel befindet sich das Applet und alle noch benötigten Dateien und Klassen in einem Jar-Archiv namens MyAppletLib.jar. Das Jar-Archiv ist in dem im codebase-Attribut angebenen Verzeichnis relativ zur HTML-Datei gespeichert (Eine Verzeichnisebene tiefer, im Verzeichnis applets). Würde bspw. das codebase-Attribut fehlen, müsste die Jar-Datei im Verzeichnis der HTML-Datei gespeichert sein. Im Jar-Archiv existiert im Wurzelverzeichnis ein Package namens applets in welchem das Applet liegt.
Einbinden eines Applets von einem anderen Server
In diesem Beispiel liegt die Jar-Datei auf einem anderen Webserver in einem Verzeichnis namens applets.
Der Browser wird hier angewiesen, das Applet von der im codebase-Attribut angegebenen URL zu laden. Das Applet leigt in diesem Beispiel in einem Verzeichnis examples auf einem anderen Webserver. Auch hier liegt das Applet wieder in einem Package applets, welches sich innerhalb des Verzeichnisses examples befindet.
<object codebase="http://www.meine-domain.de/examples" archive="MeinJar.jar" classid="java:applets.MeinApplet.class" codetype="application/java-vm" width="800" height="600"> </object>
Zusätzliche Attribute
param
Applets sind keineswegs starre Konstrukte. Es können von außen durch Parameter Werte eingeschleust werden, die entweder statisch festgelegt oder dynamisch, bspw. mit PHP generiert wurden.
<object classid="java:MeinApplet.class" codetype="application/java-vm" width="400" height="300"> <param name="bild1" value="duke.gif" /> </object>
Einbinden per Javascript
Das von Oracle bereit gestellte Deployment Toolkit erleichtert dem Entwickler das Einbinden von Applets. Es macht ihn unabhängig von Browser spezifischen oder Betriebssystem abhängigen Eigenheiten. Seit Java 1.6 Update 10 ist das Toolkit standardmäßig mit an Bord. <code=php> <script src="http://www.java.com/js/deployJava.js"></script> <script>
var attributes = {code:'applets.MyApplet.class', width: 400, height: 300}; var parameters = {jnlp_href: 'myapplet_demo.jnlp'}; deployJava.runApplet(attributes, parameters, '1.6');
</script> </code=php> Zum Start von Webstart- oder JavaFX-Anwendungen kann die JNLP-Datei und die benötigte JRE-Version bekannt gemacht werden. In unserem Beispiel wird die JRE 1.6 vorausgesetzt. Außerdem können über die JNLP-Datei zusätzliche Einstellungen für Berechtigungen vorgenommen werden.
Das Applet-Tag
Bis zur Verabschiedung des HTML 4.0-Standards, war das Applet-Tag zum Einbinden von Java-Applets in Webseiten vorgesehen. Inzwischen gilt es als veraltet und wurde vom W3C mit dem Object-Tag ersetzt. In HTML5 funktioniert es gar nicht mehr.
Einbinden einer Applet-Klasse
<applet code="MeinApplet.class" width="800" height="600"> </applet>
Einbinden eines Applets aus einer Jar-Datei
<applet archive="MeinJar.jar" code="MeinApplet.class" width="800" height="600"> </applet>
Einbinden mehrerer Jar-Dateien
<applet archive="MeinJar.jar,ExternesJar.jar" code="MeinApplet.class" width="800" height="600"> </applet>
Einbinden eines Applets aus einem anderen Verzeichnis
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens applets - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.
<applet codebase="../applets" archive="MeinJar.jar" code="MeinApplet.class" width="800" height="600"> </applet>
Einbinden eines Applets von einem anderen Server
In diesem Beispiel liegt die Jar-Datei auf einem anderen Webserver in einem Verzeichnis namens applets.
<applet codebase="http://www.meine-domain.de/applets" archive="MeinJar.jar" code="MeinApplet.class" width="800" height="600"> </applet>
Zusätzliche Attribute
param
Mit dem Parameter-Attribut können in der Webseite beliebige Werte von außen ins Applet eingeschleust und verarbeitet werden.
<applet code="MeinApplet.class" width="800" height="600"> <param name="bild1" value="duke.gif"> </applet>