<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.byte-welt.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fischauge</id>
	<title>Byte-Welt Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.byte-welt.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fischauge"/>
	<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php/Spezial:Beitr%C3%A4ge/Fischauge"/>
	<updated>2026-07-08T16:15:25Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6375</id>
		<title>Einbinden von Java-Applets in HTML-Dateien</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6375"/>
		<updated>2014-04-28T06:53:31Z</updated>

		<summary type="html">&lt;p&gt;Fischauge: /* Einbinden eines Applets aus einem anderen Verzeichnis */ erweitert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Damit ein Webbrowser Java-Applets zur Anzeige bringen und ausführen kann, gibt es derzeit zwei verschiedene HTML-Tags.&lt;br /&gt;
&lt;br /&gt;
 Tipp: Mehr über [[Java Applets starten - ab Java 7 Update 51]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;Das Object-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
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. &#039;&#039;&#039;Das Applet-Tag gilt als veraltet und sollte nicht mehr verwendet werden.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
Um ein Applet mit dem Object-Tag in eine Webseite einzubinden, werden folgende Zeilen notiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Applets in Packages===&lt;br /&gt;
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 &#039;&#039;code&#039;&#039;-Attribut.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object classid=&amp;quot;java:applets.MyApplet.class&amp;quot;&lt;br /&gt;
   codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Applet deklariert ein hier ein Package &#039;&#039;applets&#039;&#039;, also muss die class-Datei im Verzeichnis &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
Die HTML-Datei muss oberhalb von &#039;&#039;applets&#039;&#039;, d.h. eine Verzeichnisebene über &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
Applets können auch in einer &#039;&#039;&#039;Jar-Datei zusammengefasst und komprimiert&#039;&#039;&#039; werden, was einerseits die Übertragung verkürzt, andererseits bspw. zum [http://wiki.byte-welt.net/wiki/Applets_und_WebStart-Anwendungen_signieren Signieren von Applets] erforderlich ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
Manchmal benötigt man externe Bibliotheken, bspw. XML-Bibliotheken oder [[LookAndFeel]]&#039;s, die in einer Jar-Datei ausgeliefert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Mehrere Jar-Dateien werden im archive-Attribut mit Kommata getrennt aufgelistet.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar, ExterneJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
&#039;&#039;&#039;Beispiel 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;codebase&#039;&#039;-Attibut ins Spiel.&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;applets&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;ACHTUNG:&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; Wenn die HTML Seite von einem Script (beispielsweise aus dem Verzeichnis /cgi-bin heraus) an den Browser gesendet wird, hat sich nur die folgende Syntax als lauffähig in allen aktuellen Versionen des Internet Explorer, Firefox, Chrome und Opera herausgestellt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object type=&amp;quot;application/x-java-applet&amp;quot; codebase=&amp;quot;../java&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;code&amp;quot; value=&amp;quot;MyApplet.class&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;archive&amp;quot; value=&amp;quot;../java/MyApplet.jar&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel liegt das Applet im Verzeichnis /java und das Script mit dem die HTML Seite ausgegeben wird im Verzeichnis /cgi-bin&amp;lt;br&amp;gt;&lt;br /&gt;
Das Wesentliche daran ist, dass der Pfad zur JAR Datei auf jeden Fall im &amp;lt;b&amp;gt;archive&amp;lt;/b&amp;gt; Parameter mit angegeben werden muss. Das &amp;lt;b&amp;gt;codebase&amp;lt;/b&amp;gt; Attribut ist in diesem Fall nicht zwingend notwendig.&amp;lt;br&amp;gt;&lt;br /&gt;
(Stand: 28.04.2014)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel 2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object codebase=&amp;quot;./applets&amp;quot; archive=&amp;quot;MyAppletLib.jar&amp;quot; classid=&amp;quot;java:applets.MyApplet.class&amp;quot; &lt;br /&gt;
     codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel befindet sich das Applet und alle noch benötigten Dateien und Klassen in einem Jar-Archiv namens &#039;&#039;MyAppletLib.jar&#039;&#039;. Das Jar-Archiv ist in dem im &#039;&#039;codebase&#039;&#039;-Attribut angebenen Verzeichnis relativ zur HTML-Datei gespeichert (Eine Verzeichnisebene tiefer, im Verzeichnis &#039;&#039;applets&#039;&#039;). Würde bspw. das &#039;&#039;codebase&#039;&#039;-Attribut fehlen, müsste die Jar-Datei im Verzeichnis der HTML-Datei gespeichert sein.&lt;br /&gt;
Im Jar-Archiv existiert im Wurzelverzeichnis ein Package namens &#039;&#039;applets&#039;&#039; in welchem das Applet liegt.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;applets&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Der Browser wird hier angewiesen, das Applet von der im &#039;&#039;codebase&#039;&#039;-Attribut angegebenen URL zu laden. Das Applet leigt in diesem Beispiel in einem Verzeichnis &#039;&#039;examples&#039;&#039; auf einem anderen Webserver. Auch hier liegt das Applet wieder in einem Package &#039;&#039;applets&#039;&#039;, welches sich innerhalb des Verzeichnisses &#039;&#039;examples&#039;&#039; befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;http://www.meine-domain.de/examples&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:applets.MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Aber im Object-Tag sollte der neue Pflichtparameter auch funktionieren.&amp;lt;br&amp;gt;&lt;br /&gt;
Seit Version 7 Update 51 der JRE ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
Zusätzlich müssen Applets nun signiert werden. Im Manifest der Jar-Datei muss der gleiche Wert für permission eingetragen werden, sonst wird das Applet blockiert, bzw. nicht gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Hilfestellungen zum Signieren gibts im Artikel [[Java-Applets und Java WebStart-Anwendungen signieren]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Einbinden per Javascript=&lt;br /&gt;
Das von Oracle bereit gestellte [http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html Deployment Toolkit] erleichtert dem Entwickler das Einbinden von Applets.&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;code=php&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://www.java.com/js/deployJava.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
   var attributes = {code:&#039;applets.MyApplet.class&#039;, width: 400, height: 300};&lt;br /&gt;
   var parameters = {jnlp_href: &#039;myapplet_demo.jnlp&#039;};&lt;br /&gt;
   deployJava.runApplet(attributes, parameters, &#039;1.6&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code=php&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
Außerdem können über die JNLP-Datei zusätzliche Einstellungen für Berechtigungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Das Applet-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
Bis zur Verabschiedung des HTML 4.0-Standards, war das Applet-Tag zum Einbinden von Java-Applets in Webseiten vorgesehen.&lt;br /&gt;
&#039;&#039;&#039;Inzwischen gilt es als veraltet und wurde vom W3C mit dem Object-Tag ersetzt. In HTML5 funktioniert es gar nicht mehr.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar,ExternesJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;http://www.meine-domain.de/applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
Mit dem Parameter-Attribut können in der Webseite beliebige Werte von außen ins Applet eingeschleust und verarbeitet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Seit Version 7 Update 51 der [[JRE]] ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
Zusätzlich müssen Applets nun signiert werden. Im Manifest der Jar-Datei muss der gleiche Wert für permission eingetragen werden, sonst wird das Applet blockiert, bzw. nicht gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Hilfestellungen zum Signieren gibts im Artikel [[Java-Applets und Java WebStart-Anwendungen signieren]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
*http://www.heise.de/developer/artikel/Java-foerdert-nun-signierte-Applets-1840305.html&lt;br /&gt;
*[[Java-Applets und Java WebStart-Anwendungen signieren‎]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Tutorials_(Java)]]&lt;br /&gt;
[[Kategorie:HTML]]&lt;/div&gt;</summary>
		<author><name>Fischauge</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6374</id>
		<title>Einbinden von Java-Applets in HTML-Dateien</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6374"/>
		<updated>2014-04-28T06:42:04Z</updated>

		<summary type="html">&lt;p&gt;Fischauge: Punkt 1 Multibrowser Einbindung wieder entfernt, es geht einfacher.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Damit ein Webbrowser Java-Applets zur Anzeige bringen und ausführen kann, gibt es derzeit zwei verschiedene HTML-Tags.&lt;br /&gt;
&lt;br /&gt;
 Tipp: Mehr über [[Java Applets starten - ab Java 7 Update 51]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;Das Object-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
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. &#039;&#039;&#039;Das Applet-Tag gilt als veraltet und sollte nicht mehr verwendet werden.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
Um ein Applet mit dem Object-Tag in eine Webseite einzubinden, werden folgende Zeilen notiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Applets in Packages===&lt;br /&gt;
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 &#039;&#039;code&#039;&#039;-Attribut.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object classid=&amp;quot;java:applets.MyApplet.class&amp;quot;&lt;br /&gt;
   codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Applet deklariert ein hier ein Package &#039;&#039;applets&#039;&#039;, also muss die class-Datei im Verzeichnis &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
Die HTML-Datei muss oberhalb von &#039;&#039;applets&#039;&#039;, d.h. eine Verzeichnisebene über &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
Applets können auch in einer &#039;&#039;&#039;Jar-Datei zusammengefasst und komprimiert&#039;&#039;&#039; werden, was einerseits die Übertragung verkürzt, andererseits bspw. zum [http://wiki.byte-welt.net/wiki/Applets_und_WebStart-Anwendungen_signieren Signieren von Applets] erforderlich ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
Manchmal benötigt man externe Bibliotheken, bspw. XML-Bibliotheken oder [[LookAndFeel]]&#039;s, die in einer Jar-Datei ausgeliefert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Mehrere Jar-Dateien werden im archive-Attribut mit Kommata getrennt aufgelistet.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar, ExterneJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
&#039;&#039;&#039;Beispiel 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;codebase&#039;&#039;-Attibut ins Spiel.&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;applets&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel 2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object codebase=&amp;quot;./applets&amp;quot; archive=&amp;quot;MyAppletLib.jar&amp;quot; classid=&amp;quot;java:applets.MyApplet.class&amp;quot; &lt;br /&gt;
     codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel befindet sich das Applet und alle noch benötigten Dateien und Klassen in einem Jar-Archiv namens &#039;&#039;MyAppletLib.jar&#039;&#039;. Das Jar-Archiv ist in dem im &#039;&#039;codebase&#039;&#039;-Attribut angebenen Verzeichnis relativ zur HTML-Datei gespeichert (Eine Verzeichnisebene tiefer, im Verzeichnis &#039;&#039;applets&#039;&#039;). Würde bspw. das &#039;&#039;codebase&#039;&#039;-Attribut fehlen, müsste die Jar-Datei im Verzeichnis der HTML-Datei gespeichert sein.&lt;br /&gt;
Im Jar-Archiv existiert im Wurzelverzeichnis ein Package namens &#039;&#039;applets&#039;&#039; in welchem das Applet liegt.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;applets&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Der Browser wird hier angewiesen, das Applet von der im &#039;&#039;codebase&#039;&#039;-Attribut angegebenen URL zu laden. Das Applet leigt in diesem Beispiel in einem Verzeichnis &#039;&#039;examples&#039;&#039; auf einem anderen Webserver. Auch hier liegt das Applet wieder in einem Package &#039;&#039;applets&#039;&#039;, welches sich innerhalb des Verzeichnisses &#039;&#039;examples&#039;&#039; befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;http://www.meine-domain.de/examples&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:applets.MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Aber im Object-Tag sollte der neue Pflichtparameter auch funktionieren.&amp;lt;br&amp;gt;&lt;br /&gt;
Seit Version 7 Update 51 der JRE ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
Zusätzlich müssen Applets nun signiert werden. Im Manifest der Jar-Datei muss der gleiche Wert für permission eingetragen werden, sonst wird das Applet blockiert, bzw. nicht gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Hilfestellungen zum Signieren gibts im Artikel [[Java-Applets und Java WebStart-Anwendungen signieren]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Einbinden per Javascript=&lt;br /&gt;
Das von Oracle bereit gestellte [http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html Deployment Toolkit] erleichtert dem Entwickler das Einbinden von Applets.&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;code=php&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://www.java.com/js/deployJava.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
   var attributes = {code:&#039;applets.MyApplet.class&#039;, width: 400, height: 300};&lt;br /&gt;
   var parameters = {jnlp_href: &#039;myapplet_demo.jnlp&#039;};&lt;br /&gt;
   deployJava.runApplet(attributes, parameters, &#039;1.6&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code=php&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
Außerdem können über die JNLP-Datei zusätzliche Einstellungen für Berechtigungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Das Applet-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
Bis zur Verabschiedung des HTML 4.0-Standards, war das Applet-Tag zum Einbinden von Java-Applets in Webseiten vorgesehen.&lt;br /&gt;
&#039;&#039;&#039;Inzwischen gilt es als veraltet und wurde vom W3C mit dem Object-Tag ersetzt. In HTML5 funktioniert es gar nicht mehr.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar,ExternesJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;http://www.meine-domain.de/applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
Mit dem Parameter-Attribut können in der Webseite beliebige Werte von außen ins Applet eingeschleust und verarbeitet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Seit Version 7 Update 51 der [[JRE]] ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
Zusätzlich müssen Applets nun signiert werden. Im Manifest der Jar-Datei muss der gleiche Wert für permission eingetragen werden, sonst wird das Applet blockiert, bzw. nicht gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Hilfestellungen zum Signieren gibts im Artikel [[Java-Applets und Java WebStart-Anwendungen signieren]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
*http://www.heise.de/developer/artikel/Java-foerdert-nun-signierte-Applets-1840305.html&lt;br /&gt;
*[[Java-Applets und Java WebStart-Anwendungen signieren‎]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Tutorials_(Java)]]&lt;br /&gt;
[[Kategorie:HTML]]&lt;/div&gt;</summary>
		<author><name>Fischauge</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6269</id>
		<title>Einbinden von Java-Applets in HTML-Dateien</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6269"/>
		<updated>2014-04-26T16:43:33Z</updated>

		<summary type="html">&lt;p&gt;Fischauge: /* Multi Browser Einbindung mit HTML 5 (Stand April 2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Damit ein Webbrowser Java-Applets zur Anzeige bringen und ausführen kann, gibt es derzeit zwei verschiedene HTML-Tags.&lt;br /&gt;
&lt;br /&gt;
 Tipp: Mehr über [[Java Applets starten - ab Java 7 Update 51]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;Multi Browser Einbindung mit HTML 5 (Stand April 2014)&amp;lt;/span&amp;gt;=&lt;br /&gt;
Aktuell (April 2014) gibt es ein kleines Durcheinander bei der Einbindung von Java Applets in Browsern. Die eine Partei (z.B. IE11 + Chrome) möchte gern ein &amp;lt;b&amp;gt;&amp;lt;applet&amp;gt;&amp;lt;/b&amp;gt; Tag, die andere (z.B. Firefox und Opera) ein &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; Tag.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieses Problem kann man mit Javascript und einer Browserweiche lösen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt aber auch eine statische Lösung in reinem HTML 5 die für den Aufruf eines signierten Applets wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object classid=&amp;quot;java:meinjava.class&amp;quot; codebase=&amp;quot;../java&amp;quot; archive=&amp;quot;meinjava.jar&amp;quot;&lt;br /&gt;
  codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;code&amp;quot; value=&amp;quot;meinjava.class&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;all-permissions&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;comment&amp;gt;&lt;br /&gt;
        &amp;lt;applet code=&amp;quot;meinjava.class&amp;quot; codebase=&amp;quot;../java&amp;quot; archive=&amp;quot;meinjava.jar&amp;quot;&lt;br /&gt;
          type=&amp;quot;application/x-java-applet;version=1.6&amp;quot;&lt;br /&gt;
          pluginspage=&amp;quot;http://www.java.com/de/&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;param name=&amp;quot;code&amp;quot; value=&amp;quot;meinjava.class&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;all-permissions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/applet&amp;gt;&lt;br /&gt;
    &amp;lt;/comment&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieser Code ist innerhalb von &amp;lt;b&amp;gt;&amp;lt;body&amp;gt;&amp;lt;/b&amp;gt; zu verwenden, nicht innerhalb von &amp;lt;b&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/b&amp;gt; und der passende Doctype ist &amp;lt;b&amp;gt;&amp;lt;!DOCTYPE HTML&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar verhält es sich so, dass die eine Partei (z.B. IE11 + Chrome) das &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; ignoriert und das &amp;lt;b&amp;gt;&amp;lt;applet&amp;gt;&amp;lt;/b&amp;gt; ausführt. Die andere Parten ignoriert hingegen alles innerhalb von &amp;lt;b&amp;gt;&amp;lt;comment&amp;gt;&amp;lt;/b&amp;gt; und führt das &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; Tag aus.&lt;br /&gt;
&lt;br /&gt;
Zu den Parametern:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;meinjava.jar&amp;lt;/b&amp;gt; ist das signierte Java Applet&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;meinjava.class&amp;lt;/b&amp;gt; ist das im JAR befindliche Java Programm&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;codebase=&amp;quot;...&amp;quot;&amp;lt;/b&amp;gt; wird angegeben, wenn sich das JAR nicht im Public Root Verzeichnis befindet sondern in einem Unterordner&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;all-permissions&amp;quot;&amp;gt;&amp;lt;/b&amp;gt; muss in der value exakt mit der Angabe in der manifest.mf Datei im JAR übereinstimmen!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;version=1.6&amp;lt;/b&amp;gt; innerhalb des type Attributs bedeutet, dass das Applet ausgeführt wird, wenn lokal mindestens die angegebene JRE Version oder eine neuere installiert ist, wenn nicht soll der User zu der Seite geleitet werden, die im Parameter &amp;lt;b&amp;gt;pluginspage&amp;lt;/b&amp;gt; angegeben ist&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Parameter über das &amp;lt;b&amp;gt;&amp;lt;param&amp;gt;&amp;lt;/b&amp;gt; Tag können bei Bedarf ergänzt werden, sie müssen jeweils doppelt ergänzt werden, und zwar einmal oben für den &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; Abschnitt und einmal in der Mitte für den &amp;lt;applet&amp;gt; Abschnitt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt zu dem Thema diverse Seiten in den Oracle Docs aber in keiner sind alle Informationen richtig im Sinne des Verhaltens der aktuellen Browser. Auf jeder Seite ist ein bisschen richtig/aktuell und das Endergebnis ist hier zusammengetragen. Insbesondere die Angaben zum Thema &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; bzw. &amp;lt;b&amp;gt;&amp;lt;embed&amp;gt;&amp;lt;/b&amp;gt; und Internet Explorer kann man komplett vergessen. Der IE zeigt bei &amp;lt;b&amp;gt;&amp;lt;embed&amp;gt;&amp;lt;/b&amp;gt; lediglich Fehlermeldungen in der Konsole, führt aber garnichts aus. Aus diesem Grund werden hier nicht alle möglichen Oracle Docs verlinkt.&amp;lt;br&amp;gt;&lt;br /&gt;
Wer dennoch gern dort lesen möchte findet den Einstieg hier: [http://www.oracle.com/technetwork/java/javase/documentation/index.html Java SE Documentation]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;Das Object-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
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. &#039;&#039;&#039;Das Applet-Tag gilt als veraltet und sollte nicht mehr verwendet werden.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
Um ein Applet mit dem Object-Tag in eine Webseite einzubinden, werden folgende Zeilen notiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Applets in Packages===&lt;br /&gt;
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 &#039;&#039;code&#039;&#039;-Attribut.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object classid=&amp;quot;java:applets.MyApplet.class&amp;quot;&lt;br /&gt;
   codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Applet deklariert ein hier ein Package &#039;&#039;applets&#039;&#039;, also muss die class-Datei im Verzeichnis &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
Die HTML-Datei muss oberhalb von &#039;&#039;applets&#039;&#039;, d.h. eine Verzeichnisebene über &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
Applets können auch in einer &#039;&#039;&#039;Jar-Datei zusammengefasst und komprimiert&#039;&#039;&#039; werden, was einerseits die Übertragung verkürzt, andererseits bspw. zum [http://wiki.byte-welt.net/wiki/Applets_und_WebStart-Anwendungen_signieren Signieren von Applets] erforderlich ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
Manchmal benötigt man externe Bibliotheken, bspw. XML-Bibliotheken oder [[LookAndFeel]]&#039;s, die in einer Jar-Datei ausgeliefert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Mehrere Jar-Dateien werden im archive-Attribut mit Kommata getrennt aufgelistet.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar, ExterneJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
&#039;&#039;&#039;Beispiel 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;codebase&#039;&#039;-Attibut ins Spiel.&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;applets&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel 2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object codebase=&amp;quot;./applets&amp;quot; archive=&amp;quot;MyAppletLib.jar&amp;quot; classid=&amp;quot;java:applets.MyApplet.class&amp;quot; &lt;br /&gt;
     codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel befindet sich das Applet und alle noch benötigten Dateien und Klassen in einem Jar-Archiv namens &#039;&#039;MyAppletLib.jar&#039;&#039;. Das Jar-Archiv ist in dem im &#039;&#039;codebase&#039;&#039;-Attribut angebenen Verzeichnis relativ zur HTML-Datei gespeichert (Eine Verzeichnisebene tiefer, im Verzeichnis &#039;&#039;applets&#039;&#039;). Würde bspw. das &#039;&#039;codebase&#039;&#039;-Attribut fehlen, müsste die Jar-Datei im Verzeichnis der HTML-Datei gespeichert sein.&lt;br /&gt;
Im Jar-Archiv existiert im Wurzelverzeichnis ein Package namens &#039;&#039;applets&#039;&#039; in welchem das Applet liegt.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;applets&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Der Browser wird hier angewiesen, das Applet von der im &#039;&#039;codebase&#039;&#039;-Attribut angegebenen URL zu laden. Das Applet leigt in diesem Beispiel in einem Verzeichnis &#039;&#039;examples&#039;&#039; auf einem anderen Webserver. Auch hier liegt das Applet wieder in einem Package &#039;&#039;applets&#039;&#039;, welches sich innerhalb des Verzeichnisses &#039;&#039;examples&#039;&#039; befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;http://www.meine-domain.de/examples&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:applets.MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Aber im Object-Tag sollte der neue Pflichtparameter auch funktionieren.&amp;lt;br&amp;gt;&lt;br /&gt;
Seit Version 7 Update 51 der JRE ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
Zusätzlich müssen Applets nun signiert werden. Im Manifest der Jar-Datei muss der gleiche Wert für permission eingetragen werden, sonst wird das Applet blockiert, bzw. nicht gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Hilfestellungen zum Signieren gibts im Artikel [[Java-Applets und Java WebStart-Anwendungen signieren]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Einbinden per Javascript=&lt;br /&gt;
Das von Oracle bereit gestellte [http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html Deployment Toolkit] erleichtert dem Entwickler das Einbinden von Applets.&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;code=php&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://www.java.com/js/deployJava.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
   var attributes = {code:&#039;applets.MyApplet.class&#039;, width: 400, height: 300};&lt;br /&gt;
   var parameters = {jnlp_href: &#039;myapplet_demo.jnlp&#039;};&lt;br /&gt;
   deployJava.runApplet(attributes, parameters, &#039;1.6&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code=php&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
Außerdem können über die JNLP-Datei zusätzliche Einstellungen für Berechtigungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Das Applet-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
Bis zur Verabschiedung des HTML 4.0-Standards, war das Applet-Tag zum Einbinden von Java-Applets in Webseiten vorgesehen.&lt;br /&gt;
&#039;&#039;&#039;Inzwischen gilt es als veraltet und wurde vom W3C mit dem Object-Tag ersetzt. In HTML5 funktioniert es gar nicht mehr.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar,ExternesJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;http://www.meine-domain.de/applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
Mit dem Parameter-Attribut können in der Webseite beliebige Werte von außen ins Applet eingeschleust und verarbeitet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Seit Version 7 Update 51 der [[JRE]] ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
*http://www.heise.de/developer/artikel/Java-foerdert-nun-signierte-Applets-1840305.html&lt;br /&gt;
*[[Java-Applets und Java WebStart-Anwendungen signieren‎]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Tutorials_(Java)]]&lt;br /&gt;
[[Kategorie:HTML]]&lt;/div&gt;</summary>
		<author><name>Fischauge</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6268</id>
		<title>Einbinden von Java-Applets in HTML-Dateien</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Einbinden_von_Java-Applets_in_HTML-Dateien&amp;diff=6268"/>
		<updated>2014-04-26T16:39:34Z</updated>

		<summary type="html">&lt;p&gt;Fischauge: Abschnitt Multi Browser Einbindung mit HTML 5 (Stand April 2014) ergänzt, spätere Aufteilung in 1.1 HTML und 1.2 Javascript vorgesehen..&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Damit ein Webbrowser Java-Applets zur Anzeige bringen und ausführen kann, gibt es derzeit zwei verschiedene HTML-Tags.&lt;br /&gt;
&lt;br /&gt;
 Tipp: Mehr über [[Java Applets starten - ab Java 7 Update 51]]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;Multi Browser Einbindung mit HTML 5 (Stand April 2014)&amp;lt;/span&amp;gt;=&lt;br /&gt;
Aktuell (April 2014) gibt es ein kleines Durcheinander bei der Einbindung von Java Applets in Browsern. Die eine Partei (z.B. IE11 + Chrome) möchte gern ein &amp;lt;b&amp;gt;&amp;lt;applet&amp;gt;&amp;lt;/b&amp;gt; Tag, die andere (z.B. Firefox und Opera) ein &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; Tag.&amp;lt;br&amp;gt;&lt;br /&gt;
Dieses Problem kann man mit Javascript und eine Browserweiche lösen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt aber auch eine statische Lösung in reinem HTML 5 die für den Aufruf eines signierten Applets wie folgt aussieht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object classid=&amp;quot;java:meinjava.class&amp;quot; codebase=&amp;quot;../java&amp;quot; archive=&amp;quot;meinjava.jar&amp;quot;&lt;br /&gt;
  codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;code&amp;quot; value=&amp;quot;meinjava.class&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;all-permissions&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;comment&amp;gt;&lt;br /&gt;
        &amp;lt;applet code=&amp;quot;meinjava.class&amp;quot; codebase=&amp;quot;../java&amp;quot; archive=&amp;quot;meinjava.jar&amp;quot;&lt;br /&gt;
          type=&amp;quot;application/x-java-applet;version=1.6&amp;quot;&lt;br /&gt;
          pluginspage=&amp;quot;http://www.java.com/de/&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;param name=&amp;quot;code&amp;quot; value=&amp;quot;meinjava.class&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;all-permissions&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/applet&amp;gt;&lt;br /&gt;
    &amp;lt;/comment&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieser Code ist innerhalb von &amp;lt;b&amp;gt;&amp;lt;body&amp;gt;&amp;lt;/b&amp;gt; zu verwenden, nicht innerhalb von &amp;lt;b&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/b&amp;gt; und der passende Doctype ist &amp;lt;b&amp;gt;&amp;lt;!DOCTYPE HTML&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Und zwar verhält es sich so, dass die eine Partei (z.B. IE11 + Chrome) das &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; ignoriert und das &amp;lt;b&amp;gt;&amp;lt;applet&amp;gt;&amp;lt;/b&amp;gt; ausführt. Die andere Parten ignoriert hingegen alles innerhalb von &amp;lt;b&amp;gt;&amp;lt;comment&amp;gt;&amp;lt;/b&amp;gt; und führt das &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; Tag aus.&lt;br /&gt;
&lt;br /&gt;
Zu den Parametern:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;meinjava.jar&amp;lt;/b&amp;gt; ist das signierte Java Applet&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;meinjava.class&amp;lt;/b&amp;gt; ist das im JAR befindliche Java Programm&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;codebase=&amp;quot;...&amp;quot;&amp;lt;/b&amp;gt; wird angegeben, wenn sich das JAR nicht im Public Root Verzeichnis befindet sondern in einem Unterordner&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;all-permissions&amp;quot;&amp;gt;&amp;lt;/b&amp;gt; muss in der value exakt mit der Angabe in der manifest.mf Datei im JAR übereinstimmen!&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;version=1.6&amp;lt;/b&amp;gt; innerhalb des type Attributs bedeutet, dass das Applet ausgeführt wird, wenn lokal mindestens die angegebene JRE Version oder eine neuere installiert ist, wenn nicht soll der User zu der Seite geleitet werden, die im Parameter &amp;lt;b&amp;gt;pluginspage&amp;lt;/b&amp;gt; angegeben ist&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Parameter über das &amp;lt;b&amp;gt;&amp;lt;param&amp;gt;&amp;lt;/b&amp;gt; Tag können bei Bedarf ergänzt werden, sie müssen jeweils doppelt ergänzt werden, und zwar einmal oben für den &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; Abschnitt und einmal in der Mitte für den &amp;lt;applet&amp;gt; Abschnitt.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt zu dem Thema diverse Seiten in den Oracle Docs aber in keiner sind alle Informationen richtig im Sinne des Verhaltens der aktuellen Browser. Auf jeder Seite ist ein bisschen richtig/aktuell und das Endergebnis ist hier zusammengetragen. Insbesondere die Angaben zum Thema &amp;lt;b&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/b&amp;gt; bzw. &amp;lt;b&amp;gt;&amp;lt;embed&amp;gt;&amp;lt;/b&amp;gt; und Internet Explorer kann man komplett vergessen. Der IE zeigt bei &amp;lt;b&amp;gt;&amp;lt;embed&amp;gt;&amp;lt;/b&amp;gt; lediglich Fehlermeldungen in der Konsole, führt aber garnichts aus. Aus diesem Grund werden hier nicht alle möglichen Oracle Docs verlinkt.&amp;lt;br&amp;gt;&lt;br /&gt;
Wer dennoch gern dort lesen möchte findet den Einstieg hier: [http://www.oracle.com/technetwork/java/javase/documentation/index.html Java SE Documentation]&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:green;&amp;quot;&amp;gt;Das Object-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
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. &#039;&#039;&#039;Das Applet-Tag gilt als veraltet und sollte nicht mehr verwendet werden.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
Um ein Applet mit dem Object-Tag in eine Webseite einzubinden, werden folgende Zeilen notiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Applets in Packages===&lt;br /&gt;
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 &#039;&#039;code&#039;&#039;-Attribut.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object classid=&amp;quot;java:applets.MyApplet.class&amp;quot;&lt;br /&gt;
   codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Applet deklariert ein hier ein Package &#039;&#039;applets&#039;&#039;, also muss die class-Datei im Verzeichnis &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
Die HTML-Datei muss oberhalb von &#039;&#039;applets&#039;&#039;, d.h. eine Verzeichnisebene über &#039;&#039;applets&#039;&#039; liegen.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
Applets können auch in einer &#039;&#039;&#039;Jar-Datei zusammengefasst und komprimiert&#039;&#039;&#039; werden, was einerseits die Übertragung verkürzt, andererseits bspw. zum [http://wiki.byte-welt.net/wiki/Applets_und_WebStart-Anwendungen_signieren Signieren von Applets] erforderlich ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
Manchmal benötigt man externe Bibliotheken, bspw. XML-Bibliotheken oder [[LookAndFeel]]&#039;s, die in einer Jar-Datei ausgeliefert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Mehrere Jar-Dateien werden im archive-Attribut mit Kommata getrennt aufgelistet.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object archive=&amp;quot;MeinJar.jar, ExterneJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
&#039;&#039;&#039;Beispiel 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;codebase&#039;&#039;-Attibut ins Spiel.&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;applets&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel 2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;object codebase=&amp;quot;./applets&amp;quot; archive=&amp;quot;MyAppletLib.jar&amp;quot; classid=&amp;quot;java:applets.MyApplet.class&amp;quot; &lt;br /&gt;
     codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel befindet sich das Applet und alle noch benötigten Dateien und Klassen in einem Jar-Archiv namens &#039;&#039;MyAppletLib.jar&#039;&#039;. Das Jar-Archiv ist in dem im &#039;&#039;codebase&#039;&#039;-Attribut angebenen Verzeichnis relativ zur HTML-Datei gespeichert (Eine Verzeichnisebene tiefer, im Verzeichnis &#039;&#039;applets&#039;&#039;). Würde bspw. das &#039;&#039;codebase&#039;&#039;-Attribut fehlen, müsste die Jar-Datei im Verzeichnis der HTML-Datei gespeichert sein.&lt;br /&gt;
Im Jar-Archiv existiert im Wurzelverzeichnis ein Package namens &#039;&#039;applets&#039;&#039; in welchem das Applet liegt.&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;applets&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Der Browser wird hier angewiesen, das Applet von der im &#039;&#039;codebase&#039;&#039;-Attribut angegebenen URL zu laden. Das Applet leigt in diesem Beispiel in einem Verzeichnis &#039;&#039;examples&#039;&#039; auf einem anderen Webserver. Auch hier liegt das Applet wieder in einem Package &#039;&#039;applets&#039;&#039;, welches sich innerhalb des Verzeichnisses &#039;&#039;examples&#039;&#039; befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object codebase=&amp;quot;http://www.meine-domain.de/examples&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; classid=&amp;quot;java:applets.MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;java:MeinApplet.class&amp;quot; &lt;br /&gt;
    codetype=&amp;quot;application/x-java-applet&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Aber im Object-Tag sollte der neue Pflichtparameter auch funktionieren.&amp;lt;br&amp;gt;&lt;br /&gt;
Seit Version 7 Update 51 der JRE ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
Zusätzlich müssen Applets nun signiert werden. Im Manifest der Jar-Datei muss der gleiche Wert für permission eingetragen werden, sonst wird das Applet blockiert, bzw. nicht gestartet.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Hilfestellungen zum Signieren gibts im Artikel [[Java-Applets und Java WebStart-Anwendungen signieren]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Einbinden per Javascript=&lt;br /&gt;
Das von Oracle bereit gestellte [http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/depltoolkit_index.html Deployment Toolkit] erleichtert dem Entwickler das Einbinden von Applets.&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;code=php&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://www.java.com/js/deployJava.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
   var attributes = {code:&#039;applets.MyApplet.class&#039;, width: 400, height: 300};&lt;br /&gt;
   var parameters = {jnlp_href: &#039;myapplet_demo.jnlp&#039;};&lt;br /&gt;
   deployJava.runApplet(attributes, parameters, &#039;1.6&#039;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/code=php&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
Außerdem können über die JNLP-Datei zusätzliche Einstellungen für Berechtigungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Das Applet-Tag&amp;lt;/span&amp;gt;=&lt;br /&gt;
Bis zur Verabschiedung des HTML 4.0-Standards, war das Applet-Tag zum Einbinden von Java-Applets in Webseiten vorgesehen.&lt;br /&gt;
&#039;&#039;&#039;Inzwischen gilt es als veraltet und wurde vom W3C mit dem Object-Tag ersetzt. In HTML5 funktioniert es gar nicht mehr.&#039;&#039;&#039;&lt;br /&gt;
==Einbinden einer Applet-Klasse==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einer Jar-Datei==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Einbinden mehrerer Jar-Dateien===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet archive=&amp;quot;MeinJar.jar,ExternesJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets aus einem anderen Verzeichnis==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039; - über dem Verzeichnis, in dem sich die einbettende HTML-Datei befindet.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;../applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einbinden eines Applets von einem anderen Server==&lt;br /&gt;
In diesem Beispiel liegt die Jar-Datei auf einem anderen [[Webserver]] in einem Verzeichnis namens &#039;&#039;&#039;applets&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet codebase=&amp;quot;http://www.meine-domain.de/applets&amp;quot; archive=&amp;quot;MeinJar.jar&amp;quot; code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zusätzliche Attribute==&lt;br /&gt;
===param===&lt;br /&gt;
Mit dem Parameter-Attribut können in der Webseite beliebige Werte von außen ins Applet eingeschleust und verarbeitet werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;bild1&amp;quot; value=&amp;quot;duke.gif&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Permission (seit Java 7 Update 51)===&lt;br /&gt;
Oracle selbst benutzt in seinen Dokumentationen immer noch das Applet-Tag! Seit Version 7 Update 51 der [[JRE]] ist im Applet-Tag ein ganz bestimmter Parameter Pflicht, der mit den Einstellungen des Manifests (Applets müssen nun immer signiert sein) übereinstimmen muss. Anderenfalls wird das Applet blockiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;applet code=&amp;quot;MeinApplet.class&amp;quot; width=&amp;quot;800&amp;quot; height=&amp;quot;600&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;permissions&amp;quot; value=&amp;quot;sandbox&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/applet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zwei Werte kommen für Permission zur Auswahl:&lt;br /&gt;
*&#039;&#039;&#039;sandbox&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet keine weiteren Rechte auf dem Client benötigt&lt;br /&gt;
*&#039;&#039;&#039;all-permissions&#039;&#039;&#039; - zur Kennzeichnung, dass das Applet volle Rechte auf dem Client benötigt&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
*http://www.heise.de/developer/artikel/Java-foerdert-nun-signierte-Applets-1840305.html&lt;br /&gt;
*[[Java-Applets und Java WebStart-Anwendungen signieren‎]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Tutorials_(Java)]]&lt;br /&gt;
[[Kategorie:HTML]]&lt;/div&gt;</summary>
		<author><name>Fischauge</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Java-Applets_und_Java_WebStart-Anwendungen_signieren&amp;diff=6238</id>
		<title>Java-Applets und Java WebStart-Anwendungen signieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Java-Applets_und_Java_WebStart-Anwendungen_signieren&amp;diff=6238"/>
		<updated>2014-04-24T08:41:52Z</updated>

		<summary type="html">&lt;p&gt;Fischauge: /* Anwendung signieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Anwendung signieren=&lt;br /&gt;
{{In Arbeit}}&lt;br /&gt;
&#039;&#039;&#039;Java-Applets haben seit Java 7 Update 51 keine Rechte mehr auf dem Gastsystem! Es muss mindestens eine Anpassung der Sicherheitseinstellungen im Java Control Panel erfolgen.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Artikel [[Java Applets starten - ab Java 7 Update 51]] befasst sich eingehender mit der Inbetriebnahme von Java-Applets.&lt;br /&gt;
&lt;br /&gt;
Unsignierte Applets haben außerdem keinen Zugriff auf die lokale Datei- und Verzeichnisebene des [[Client]]s und dürfen sich nur zu dem Rechner verbinden, von dem sie auch heruntergeladen wurden.&lt;br /&gt;
Für Applikationen erlaubte Dinge, wie Ports öffnen, sensible oder persönliche Daten aus dem [[Client]]-PC auslesen oder die VM beenden, sind einem unsignierten Applet ebenfalls untersagt.&lt;br /&gt;
&lt;br /&gt;
Ein nicht signiertes Applet wird daher bei einem unerlaubten Zugriff immer eine [http://www.google.de/search?btnI&amp;amp;q=site:docs.oracle.com/javase/7/docs/api/%20inurl:AccessControlException java.security.AccessControlException] werfen.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Signierte Applets können jedoch erweiterte Rechte auf dem Client erhalten.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Möglichkeiten der Signierung==&lt;br /&gt;
Es gibt zwei Möglichkeiten eine Java-Anwendung zu signieren:&lt;br /&gt;
# Die kostenpflichtige Ausstellung eines [[Zertifikat]]s von einem darauf spezialisierten Unternehmen, wie z.B. VeriSign (ehem. Thawte). So ein Zertifikat kann mehrere 100 Dollar kosten.&lt;br /&gt;
# Die Signierung des Programms durch den Programmierer selbst.&lt;br /&gt;
Dabei wird mit den Tools des JDK/SDK ein Zertifikat erzeugt. Auch die Erzeugung eines Zertifikats mittels OpenSSL ist denkbar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In beiden Fällen öffnet sich vor dem Start der Anwendung ein Fenster mit einem Sicherheitshinweis, welches sich vom Benutzer die Erlaubnis einholt, eventuell potenziell unsichere/gefährliche Operationen auf seinem System durchführen zu dürfen.&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Benutzer selbst muss entscheiden, ob er dem Applet vertrauen möchte, oder nicht.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Die Informationsdialoge sind in keinem Fall modifizierbar oder unterdrückbar.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Wenn die Anwendung mit einem selbst erzeugten Zertifikat signiert wurde, wird der Hersteller immer als &#039;UNKNOWN&#039; ausgewiesen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{In Arbeit}}&lt;br /&gt;
Hier kannst du auch ein signiertes Applet testen. Es wird einige System-Informationen aus deinem System lesen und anzeigen, wenn du den Zugriff gestattest.&lt;br /&gt;
Zugriffe, die erweiterte Rechte benötigen sind im Applet pink dargestellt. (Link wird nachgereicht!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Häufig ist zu beobachten, dass Programmierer in ihren Applets Bilder mit den verkehrten Methoden einbinden. Dazu mehr unter [[Grafikdateien laden und anzeigen]].&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Zum Signieren eines Java-Applets muss dieses in einer Jar-Datei gespeichert sein.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==SignTool für Windows==&lt;br /&gt;
Folgende kleine Batchdatei, kann das komfortable &#039;&#039;&#039;Erstellen einer Jar-Datei und anschließende Signieren&#039;&#039;&#039; eines Applets vereinfachen. &lt;br /&gt;
Einfach die &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;blauen&amp;lt;/span&amp;gt; Texte der Datei mit Hilfe eines Texteditors modifizieren, unter einem Namen wie bspw. SignTool.bat in deinem Projektverzeichnis speichern und per Doppelklick ausführen.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Hinweis: Die Batchdatei darf auf keinen Fall den Namen eines der Tools aus dem JDK erhalten!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 @echo off&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * SignTool by L-ectron-X ( byte-welt.net )&lt;br /&gt;
 rem **************************************************************************&lt;br /&gt;
 rem * Ablauf beim Signieren&lt;br /&gt;
 rem *&lt;br /&gt;
 rem * Erzeugen eines eigenen Schlüssels und Zertifikats&lt;br /&gt;
 rem * Mit KeyTool, einem Werkzeug aus dem SDK, einen neuen Schlüssel erzeugen:&lt;br /&gt;
 rem * keytool -genkeypair -selfcert -alias Signer -dname &amp;quot;cn=Dein Name, c=de&amp;quot;&lt;br /&gt;
 rem * Gib anschließend Dein Passwort ein.&lt;br /&gt;
 rem *&lt;br /&gt;
 rem * keytool unterstützt weitere Angaben:&lt;br /&gt;
 rem * CN=commonName&lt;br /&gt;
 rem * OU=organizationUnit&lt;br /&gt;
 rem * O=organizationName&lt;br /&gt;
 rem * L=localityName&lt;br /&gt;
 rem * S=stateName&lt;br /&gt;
 rem * C=country&lt;br /&gt;
 rem *&lt;br /&gt;
 rem * Mehr über keytool: http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html &lt;br /&gt;
 rem *&lt;br /&gt;
 rem * Signieren des Applets mit Hilfe des Tools jarsigner&lt;br /&gt;
 rem * jarsigner signed.jar Signer&lt;br /&gt;
 rem * Und noch einmal dein Passwort eingeben.&lt;br /&gt;
 rem ***************************************************************************&amp;lt;/span&amp;gt;&lt;br /&gt;
 echo = SignTool =&lt;br /&gt;
 echo Dieses Tool hilft beim Erzeugen von signierten jar-Dateien&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Schritt 1: jar-Dateien erzeugen&lt;br /&gt;
 echo -------------------------------&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem Pfad zum SDK setzen &lt;br /&gt;
 rem --&amp;gt;&amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt; optional, (auskommentieren, wenn eine Umgebungsvariable gesetzt wurde)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 set java_home=.;&amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;C:\Programme\Java\jdk1.8.0\bin&amp;lt;/span&amp;gt;&lt;br /&gt;
 set path=.;%path%;%java_home%&amp;lt;br&amp;gt;&lt;br /&gt;
 echo Manifestdatei erzeugen...&lt;br /&gt;
 echo Manifest-Version: 1.0&amp;gt;manifest.mf &lt;br /&gt;
 echo Created-by: SignTool by L-ectron-X - byte-welt.net&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Anpassen, wenn eine Applikation statt eines Applets signiert werden soll!&amp;lt;/span&amp;gt;&lt;br /&gt;
 rem * Applikationen brauchen die Main-Class-Definition im Manifest. Dann ist das rem zu entfernen.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;rem&amp;lt;/span&amp;gt; echo Main-Class: &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;package.MainClass&amp;lt;/span&amp;gt;&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Anpassen, wenn das Applet bzw. die Applikation Resourcen weiterer Jar-Dateien benutzt!&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;rem&amp;lt;/span&amp;gt; echo Class-Path: &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;./lib/External.jar&amp;lt;/span&amp;gt;&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Anpassen, wenn eine Applikation erweiterte Rechte auf dem Client benoetigt.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Wenn das Permission-Attribut nicht angegeben wird, wird die Anwendung blockiert!&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Es wird zwischen den Werten &amp;lt;b&amp;gt;sandbox&amp;lt;/b&amp;gt; und &amp;lt;b&amp;gt;all-permissions&amp;lt;/b&amp;gt; unterschieden.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Mehr dazu unter http://docs.oracle.com/javase/8/docs/technotes/guides/jweb/security/manifest.html#permissions&amp;lt;/span&amp;gt;&lt;br /&gt;
 echo Permissions: &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;sandbox&amp;lt;/span&amp;gt;&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Anpassen, wenn verhindert werden soll, dass die Anwendung auf einer anderen Domain &#039;re-deployed&#039; wird.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Die Domain muss mit dem Speicherort der Anwendung übereinstimmen, sonst wird die Anwendung blockiert.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Mehr dazu unter http://docs.oracle.com/javase/8/docs/technotes/guides/jweb/security/manifest.html#codebase&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;rem&amp;lt;/span&amp;gt; echo Codebase: &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;http://byte-welt.net&amp;lt;/span&amp;gt;&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Anpassen, es wird empfohlen, den Namen der Anwendung anzugeben.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Es soll dem Benutzer die Entscheidung erleichtern, der Anwendung zu vertrauen.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Mehr dazu unter http://docs.oracle.com/javase/8/docs/technotes/guides/jweb/security/manifest.html#app_name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;rem&amp;lt;/span&amp;gt; echo Application-Name: &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;Hallo Welt!&amp;lt;/span&amp;gt;&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * Leerzeile nicht vergessen!&amp;lt;/span&amp;gt;&lt;br /&gt;
 echo.&amp;gt;&amp;gt;manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 if exist *.jar goto key&lt;br /&gt;
 echo jar-Datei mit angegebenen Parametern erzeugen...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;anpassen!&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem * In folgendem Beispiel werden alle &#039;&#039;&#039;.class-Dateien&#039;&#039;&#039; mit Package (&#039;&#039;&#039;de.domain.applets&#039;&#039;&#039;) und die Verzeichnisse &#039;&#039;&#039;bilder&#039;&#039;&#039; und &#039;&#039;&#039;etc&#039;&#039;&#039;&lt;br /&gt;
 rem * mit ins jar-Archiv gepackt.&amp;lt;/span&amp;gt;&lt;br /&gt;
 jar cfmv &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;MeinJar.jar&amp;lt;/span&amp;gt; manifest.mf &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;de/domain/applets/*.class bilder etc&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 :key&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Schritt 2: Schluessel und Zertifikat generieren&lt;br /&gt;
 echo -----------------------------------------------&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;anpassen!&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem -validity 18250 (365 Tage x 50) erzeugt ein 50 Jahre gültiges Zertifikat&amp;lt;/span&amp;gt;&lt;br /&gt;
 keytool -genkeypair -selfcert -validity 3650 -alias Signer -dname &amp;quot;cn=&amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;Dein Name&amp;lt;/span&amp;gt;, c=de&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
 if not exist *.jar goto error&amp;lt;br&amp;gt;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Schritt 3: jar-Datei signieren&lt;br /&gt;
 echo ------------------------------&lt;br /&gt;
 echo jarsigner erwartet hier nochmals dein Passwort.&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;anpassen!&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 jarsigner &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;MeinJar.jar&amp;lt;/span&amp;gt; Signer&amp;lt;br&amp;gt;&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Schritt 4: Zertifikat testen&lt;br /&gt;
 echo ----------------------------&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem --&amp;gt; &amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;anpassen!&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 jarsigner -verify -verbose -certs &amp;lt;span style=&amp;quot;color:blue; font-weight:bold;&amp;quot;&amp;gt;MeinJar.jar&amp;lt;/span&amp;gt;&lt;br /&gt;
 goto end&amp;lt;br&amp;gt;&lt;br /&gt;
 :error&lt;br /&gt;
 echo.&lt;br /&gt;
 echo Es wurde keine jar-Datei zum Signieren gefunden.&lt;br /&gt;
 echo Die Erzeugung der jar-Datei ist moeglicherweise fehlgeschlagen.&lt;br /&gt;
 echo Pruefe deine Modifikationen in der SignTool-Batchdatei!&amp;lt;br&amp;gt;&lt;br /&gt;
 :end&lt;br /&gt;
 if not exist manifest.mf goto console&lt;br /&gt;
 echo.&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem Manifest von Festplatte löschen&amp;lt;/span&amp;gt;&lt;br /&gt;
 del manifest.mf&amp;lt;br&amp;gt;&lt;br /&gt;
 :console&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:gray; font-style:italic;&amp;quot;&amp;gt;rem Console für Ausgaben noch geöffnet lassen&amp;lt;/span&amp;gt;&lt;br /&gt;
 echo.&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
In deinem Projekt-Verzeichnis sollte vorzugsweise noch keine jar-Datei angelegt sein, das Tool wird dann auch eine korrekte jar-Datei aus deinen .class-Dateien erzeugen können.&lt;br /&gt;
Auch wenn Du eine jar-Datei schon erzeugt hast und nur die Signierung mit Hilfe dieser Batchdatei durchführen möchtest, genügt die Modifikation der Batchdatei an den ausgewiesenen Stellen.&lt;br /&gt;
Wenn du bisher noch keine Signierung gemacht hast, wirst du im Verlauf des Batchdatei-Ablaufes nach einem Passwort gefragt, welches du selbst wählen kannst. Merke es dir gut. Wenn du es vergisst, kannst du so lange keine weiteren Applets signieren, bis du die .keystore-Datei aus deinem Benutzer-Verzeichnis gelöscht hast.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Damit das nun in einer Jar-Datei verpackte und signierte Applet auch ausgeführt werden kann, muss die HTML-Datei angepasst werden:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Einbinden von Applets in HTML-Dateien]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Für Webstart-Anwendungen&#039;&#039;&#039; müsste noch die JNLP-Datei angepasst werden, damit sie mit Annahme des Zertifikats (Vertrauenserklärung) alle Rechte des Benutzers auf seinem Rechner erhält:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code=xml&amp;gt;&lt;br /&gt;
&amp;lt;security&amp;gt;&lt;br /&gt;
   &amp;lt;all-permissions/&amp;gt;&lt;br /&gt;
&amp;lt;/security&amp;gt;&lt;br /&gt;
&amp;lt;/code=xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Infos: [http://download.oracle.com/javase/6/docs/technotes/guides/jar/jarGuide.html JAR File Overview]&lt;br /&gt;
&lt;br /&gt;
==Fehlermeldungen==&lt;br /&gt;
*Der Interpreter meldet, dass in einer signierten Jar-Datei ein unsignierter Eintrag gefunden wurde:&lt;br /&gt;
 com.sun.deploy.net.JARSigningException: Unsignierter Eintrag in Ressource: &amp;lt;Jar file&amp;gt;&lt;br /&gt;
Wenn es Dateinamen mit Umlauten in der Jar-Datei gibt, kann es passieren, dass diese nicht signiert werden (können).&amp;lt;br&amp;gt;&lt;br /&gt;
Also sollten diese umbenannt, die referenzierenden Dateien aktualisiert und die Jar-Datei erneut signiert werden. Unter Umständen wird es notwendig, die .ds- und .dsa-Dateien aus dem META-INF-Verzeichnis der Jar-Datei zu löschen, damit beim erneuten Signieren saubere Schlüsseldateien erzeugt werden könnnen.&lt;br /&gt;
&lt;br /&gt;
=Die Alternative=&lt;br /&gt;
Wer nicht signieren möchte, kann das Problem auch mit der JNLP-API angehen.&lt;br /&gt;
Hier ein Beispiel, wie man ohne Signieren vom Client lesen und auch auf ihn schreiben kann:&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/usingJNLPAPI.html Oracle - Accessing the Client Using JNLP API]&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
*[http://java.sun.com/docs/books/tutorial/deployment/jar/intro.html Understanding Signing and Verification (The Java™ Tutorials &amp;gt; Deployment &amp;gt; Packaging Programs in JAR Files)]&lt;br /&gt;
*[http://download.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html keytool-Key and Certificate Management Tool]&lt;br /&gt;
*[http://download.oracle.com/javase/6/docs/technotes/tools/windows/jarsigner.html jarsigner-JAR Signing and Verification Tool]&lt;br /&gt;
*[http://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/usingJNLPAPI.html Accessing the Client Using JNLP API (The Java™ Tutorials &amp;gt; Deployment &amp;gt; Doing More With Java Rich Internet Applications)]&lt;br /&gt;
*[http://docs.oracle.com/javase/1.4.2/docs/guide/jws/developersguide/syntax.html JNLP File Syntax]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Java]]&lt;br /&gt;
[[Kategorie:Java Verschiedenes]]&lt;br /&gt;
[[Kategorie:Tutorials (Java)]]&lt;br /&gt;
--[[Benutzer:L-ectron-X | L-ectron-X]] (15.05.2005, 18:58)&lt;/div&gt;</summary>
		<author><name>Fischauge</name></author>
	</entry>
</feed>