1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
|
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100254.html;106,k100257.html;107,k100259.html;108,k100260.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100254.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100257.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100259.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100260.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">Kapitel 40 - Applets II
</table>
<hr>
<!-- Section -->
<a name="javaplugin"></a>
<h2>40.4 Das <a name="ixa102981">Java-Plugin</a><a name="ixa102982"></a>
</h2>
<hr>
<ul>
<li><a href="k100258.html#javaplugin">40.4 Das Java-Plugin</a>
<ul>
<li><a href="k100258.html#sectlevel3id040004001">40.4.1 Funktionsweise</a>
<li><a href="k100258.html#sectlevel3id040004002">40.4.2 Verwendung des Plugins</a>
<ul>
<li><a href="k100258.html#sectlevel4id040004002001">Installation</a>
<li><a href="k100258.html#sectlevel4id040004002002">Konvertierung der HTML-Seiten</a>
</ul>
</ul>
</ul>
<hr>
<!-- Section -->
<a name="sectlevel3id040004001"></a>
<h3>40.4.1 Funktionsweise </h3>
<p>
Obwohl Applets einer der Hauptgründe für das große
Interesse an Java waren und mit Netscape 2.0 bereits früh eine
weitverbreitete Plattform für JDK-1.0-Applets zur Verfügung
stand, stellte sich bei vielen Entwicklern bald eine gewisse Ernücherung
ein. Bereits zur Version 1.1 des JDK hatten die Browser-Hersteller
große Probleme, Schritt zu halten. Während Netscape den
Applet-Entwicklern mit Qualitätsproblemen die frühen 4er
Versionen des Communicators verhagelte, wurden beim Internet Explorer
aus unternehmenspolitischen Gründen bestimmte JDK-1.1-Eigenschaften
gar nicht erst zur Verfügung gestellt.
<p>
Selbst heute noch werden Applets nicht selten mit dem JDK 1.0 entwickelt,
um möglichen Kompatibilitätsproblemen aus dem Weg zu gehen.
Von einer echten Unterstützung für die neueren JDKs sind
die Browser noch weit entfernt. Glücklicherweise hat SUN diese
Probleme erkannt und mit dem <i>Java-Plugin</i> eine eigene Browser-Erweiterung
zum Ausführen von Applets entwickelt. Diese läuft sowohl
mit dem Communicator als auch mit dem Internet Explorer und wird zusammen
mit dem SUN-JRE bzw. -JDK installiert. Entsprechend präparierte
Applets laufen dann nicht mehr unter den Browser-eigenen Java-Implementierungen,
sondern verwenden die VM und die Laufzeitumgebung der Original-SUN-Implementierung.
Der Browser stellt nur noch das Fenster zur Bildschirmausgabe zur
Verfügung. Auf diese Weise können Applets alle Eigenschaften
der aktuellen Java-Versionen verwenden (Collections, Java-2D, Swing
usw.).
<p>
Allerdings hat die Sache einen kleinen Haken. Um das Plugin zum Ausführen
eines Applets zu bewegen, darf dieses im HTML-Quelltext nämlich
nicht mehr innerhalb eines <a href="index_a.html#ixb102173"><font color=#000080><tt>APPLET</tt></font></a>-Tags
stehen, sondern muss mit dem <a name="ixa102983"><a href="index_e.html#ixb102210"><font color=#000080><tt>EMBED</tt></font></a></a>-
bzw. <a href="index_o.html#ixb102157"><font color=#000080><tt>OBJECT</tt></font></a>-Tag
eingebunden werden. Zwar stellt SUN ein automatisches Werkzeug zur
Konvertierung von Webseiten zur Verfügung, aber das kann natürlich
nur auf Seiten angewendet werden, deren Quelltext modifizierbar ist.
Während beispielsweise unternehmensinterne Webseiten im Intranet
entsprechend präpariert werden können, werden aus dem Internet
geladene HTML-Seiten mit eingebetteten Applets nach wie vor von der
im Browser eingebauten Java-Implementierung ausgeführt.
<p>
Des weiteren muss natürlich auf dem Client ein geeignetes JRE
inklusive des Plugins installiert sein, damit die modifizierten Applets
ausgeführt werden können. Zwar können die HTML-Seiten
so aufgebaut werden, dass beim Fehlen des Plugins ein Verweis auf
eine Download-Seite angezeigt wird. In diesem Fall muss das JRE dann
aber erst vom Anwender auf dem Client installiert werden, was aus
verschiedenen Gründen problematisch sein kann (fehlende Kenntnisse
des Anwenders, Programme dürfen nur vom Administrator installiert
werden, Sicherheitsbedenken usw.) Einer der Hauptvorteile von Applets,
die »installationsfreie« Ausführbarkeit von Programmen,
ist verloren.
<p>
Dies mögen Gründe dafür sein, dass sich das Plugin
noch nicht für Internet-Applets durchsetzen konnte. Für
Intranet-Installationen, bei denen die Ausstattung der Clients kontrollierbar
ist, kann es aber eine echte Alternative gegenüber dem Betrieb
von autonomen Java-Applikationen sein. Wir wollen im nächsten
Abschnitt die Schritte aufzeigen, die erforderlich sind, um ein Applet
mit dem Plugin auszuführen.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Seit der Version 1.4 des JDK können bestimmte Web-Browser dazu
gebracht werden, auch bei einem normalen <a href="index_a.html#ixb102173"><font color=#000080><tt>APPLET</tt></font></a>-Tag
auf die Runtime der Version 1.4 zurückzugreifen, statt auf die
eingebaute Java-Implementierung. Dies gilt im wesentlichen für
die 4er-, 5er- und 6er-Versionen des Internet Explorers sowie für
die 6.0er- und 6.1er-Versionen des Netscape Communicators. Ein entsprechendes
Verhalten der Browser kann entweder bei der Installation des JDK festgelegt
werden (siehe <a href="k100014.html#jdkinstallationdetails">Abschnitt 2.1.2</a>),
oder auch nachträglich über den Eintrag »Java-Plug-in
1.4.0« in der Systemsteuerung.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#FF9900">
<tr>
<td><font color="#FFFFFF"> JDK1.1-6.0 </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel3id040004002"></a>
<h3>40.4.2 Verwendung des Plugins </h3>
<!-- Section -->
<a name="sectlevel4id040004002001"></a>
<h4>Installation </h4>
<p>
Das Java-Plugin ist seit der Version 1.2 fester Bestandteil des JRE
(<i>Java Runtime Environment</i>). Wird ein JRE 1.2 oder höher
(oder ein entsprechendes JDK) installiert, so fügt die Installationsroutine
den installierten Browsern das Plugin automatisch hinzu. Unter Windows
gibt es nach der Installation in der Systemsteuerung einen neuen Eintrag
»Java-Plugin«, mit dem das Plugin konfiguriert werden kann.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Wenn den Anwendern, die noch kein Plugin haben, eine einfache Möglichkeit
zur Installation gegeben werden soll, kann in den <a href="index_e.html#ixb102210"><font color=#000080><tt>EMBED</tt></font></a>-
bzw. <a href="index_o.html#ixb102157"><font color=#000080><tt>OBJECT</tt></font></a>-Tags
ein Verweis auf die Plugin-Downloadseite untergebracht werden. Der
im nächsten Abschnitt vorgestellte Plugin-Konverter macht das
automatisch und fügt Verweise auf die Downloadseiten von <font color="#000077"><tt>java.sun.com</tt></font>
ein. Im Intranet kann natürlich auch eine lokale Seite angegeben
werden.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#0099CC">
<tr>
<td><font color="#FFFFFF"> Tipp </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#0099CC"><img src="trp1_1.gif"></td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id040004002002"></a>
<h4>Konvertierung der HTML-Seiten </h4>
<p>
Das Konvertieren der <a href="index_a.html#ixb102173"><font color=#000080><tt>APPLET</tt></font></a>-Tags
ist leider keine triviale Angelegenheit. Einerseits arbeiten die Plugin-Mechanismen
der verschiedenen Browser unterschiedlich, andererseits gibt es Unterschiede
zwischen den verschiedenen Browser-Versionen. Am einfachsten ist es,
die Konvertierung der HTML-Seiten dem Konvertierungstool <a name="ixa102984"><a href="index_h.html#ixb102211"><font color=#000080><tt>HTMLConverter</tt></font></a></a>
zu überlassen, das von der Plugin-Homepage <a href="http://java.sun.com/products/plugin">http://java.sun.com/products/plugin</a>
heruntergeladen werden kann. Seit dem JDK 1.3.1 ist der Konverter
fester Bestandteil des JDK.
<p>
Nachdem das Konvertierungstool installiert wurde (in der Version 1.3
wird es als Zip-Datei ausgeliefert und muss lediglich in ein freies
Verzeichnis entpackt werden), kann seine Hauptklasse <a href="index_h.html#ixb102211"><font color=#000080><tt>HTMLConverter</tt></font></a>
gestartet werden:
<font color="#333300">
<pre>
javaw HTMLConverter
</pre>
</font>
<p>
Der Konverter wird dann als Swing-Applikation aufgerufen und erlaubt
die interaktive Konfiguration der verschiedenen Optionen. Er kann
eine einzige oder alle Dateien in einem vorgegebenen Verzeichnis konvertieren
und wahlweise auch Unterverzeichnisse durchlaufen. Die Konvertierung
wird mit Hilfe von Template-Dateien erledigt. Mit ihnen wird festgelegt,
auf welchen Plattformen und Browsern die konvertierte HTML-Datei laufen
soll. Für den Communicator werden die <a href="index_a.html#ixb102173"><font color=#000080><tt>APPLET</tt></font></a>-Tags
in <a href="index_e.html#ixb102210"><font color=#000080><tt>EMBED</tt></font></a>-Tags
umgewandelt, für den Internet Explorer in <a href="index_o.html#ixb102157"><font color=#000080><tt>OBJECT</tt></font></a>-Tags.
Standardmäßig ist ein Template aktiviert, das trickreichen
Code erzeugt, der auf beiden Browsern läuft.
<p>
Bei der Konvertierung werden die ursprünglichen HTML-Seiten in
einem Backup-Verzeichnis gesichert. Zusätzlich werden die alten
<a href="index_a.html#ixb102173"><font color=#000080><tt>APPLET</tt></font></a>-Tags
in einem Kommentar am Ende des neuen Tags abgelegt. Nach der Konvertierung
kann die HTML-Seite wie gewohnt im Browser aufgerufen werden. Die
Applets werden nun allerdings nicht mehr mit der im Browser eingebauten
Java-Implementierung betrieben, sondern mit dem installierten JRE.
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100254.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100257.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100259.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100260.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">© 1998, 2007 Guido Krüger & Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>
|