summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/html/k100323.html
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/html/k100323.html
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100323.html')
-rw-r--r--Master/Reference Architectures and Patterns/hjp5/html/k100323.html297
1 files changed, 297 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100323.html b/Master/Reference Architectures and Patterns/hjp5/html/k100323.html
new file mode 100644
index 0000000..02d6367
--- /dev/null
+++ b/Master/Reference Architectures and Patterns/hjp5/html/k100323.html
@@ -0,0 +1,297 @@
+<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,k100317.html;106,k100322.html;107,k100324.html;108,index.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">&nbsp;Titel&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100317.html">&nbsp;&lt;&lt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100322.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100324.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;&gt;&gt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
+<td align="right">Kapitel 51 - Hilfsprogramme des JDK
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="jarwerkzeug"></a>
+<h2>51.6 jar - Das <a name="ixa103778">Archivierungswerkzeug</a> <a name="ixa103779"></a>
+</h2>
+<hr>
+<ul>
+<li><a href="k100323.html#jarwerkzeug">51.6 jar - Das Archivierungswerkzeug </a>
+<ul>
+<li><a href="k100323.html#sectlevel3id051006001">51.6.1 Aufruf</a>
+<li><a href="k100323.html#sectlevel3id051006002">51.6.2 Beschreibung</a>
+<li><a href="k100323.html#sectlevel3id051006003">51.6.3 Kommandos</a>
+<li><a href="k100323.html#sectlevel3id051006004">51.6.4 Verwendung von jar-Dateien in Applets</a>
+</ul>
+</ul>
+<hr>
+
+
+<!-- Section -->
+<a name="sectlevel3id051006001"></a>
+<h3>51.6.1 Aufruf </h3>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+jar [ commands ] archive { input-file }
+</pre>
+</font>
+</td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id051006002"></a>
+<h3>51.6.2 Beschreibung </h3>
+
+<p>
+<a name="ixa103780"><a href="index_j.html#ixb100146"><font color=#000080><tt>jar</tt></font></a></a>
+ist ein Archivierungsprogramm, das Dateien und komplette Unterverzeichnisse
+komprimieren und in eine gemeinsame Archivdatei packen kann. Es verwendet
+ein Kompressionsformat, das den diversen <font color="#000077"><tt>zip</tt></font>-/<font color="#000077"><tt>unzip</tt></font>-Programmen
+&auml;hnelt, und wird analog dem UNIX-Tool <font color="#000077"><tt>tar</tt></font>
+bedient. Ein Vorteil von <a href="index_j.html#ixb100146"><font color=#000080><tt>jar</tt></font></a>
+ist seine Portabilit&auml;t, die sowohl f&uuml;r das erzeugte Dateiformat
+als auch f&uuml;r das (in Java geschriebene) Programm selbst gilt.
+
+<p>
+Wichtigster Einsatzzweck von <a href="index_j.html#ixb100146"><font color=#000080><tt>jar</tt></font></a>
+ist es, alle zu einem Java-Programm geh&ouml;renden Dateien (<font color="#660099">.class</font>-,
+Image-, Sound-Dateien usw.) in einer einzigen Datei zusammenzufassen.
+Neben den organisatorischen Vorteilen, die diese M&ouml;glichkeit
+zweifellos bietet, wurden jar-Dateien vor allem eingef&uuml;hrt, um
+das Laden von Applets aus dem Internet zu beschleunigen. Dadurch m&uuml;ssen
+Web-Browser n&auml;mlich nicht mehr f&uuml;r jede einzelne Datei,
+die in einem Applet ben&ouml;tigt wird, eine eigene GET-Transaktion
+absetzen, sondern k&ouml;nnen alle erforderlichen Files in einem Schritt
+laden. Die Ladezeit von Applets wird dadurch drastisch verringert,
+insbesondere, wenn viele kleine Dateien ben&ouml;tigt werden.
+
+<!-- Section -->
+
+<a name="sectlevel3id051006003"></a>
+<h3>51.6.3 Kommandos </h3>
+
+<p>
+Im Gegensatz zu den &uuml;brigen Programmen, die in diesem Kapitel
+vorgestellt wurden, kennt <a href="index_j.html#ixb100146"><font color=#000080><tt>jar</tt></font></a>
+keine Optionsparameter, sondern erwartet <i>Kommandos</i> an ihrer
+Stelle. Ein Kommando besteht aus einem Buchstaben, der ohne den Pr&auml;fix
+<font color="#000077"><tt>-</tt></font> angegeben wird. Sollen mehrere
+Kommandos kombiniert werden, so werden die zugeh&ouml;rigen Buchstaben
+ohne L&uuml;cken direkt hintereinander geschrieben. Diese abweichende
+Syntax stammt von dem Kommando <font color="#000077"><tt>tar</tt></font>,
+das auf UNIX-Rechnern zur Archivierung von Dateien eingesetzt wird.
+<a href="k100323.html#jarkommandos">Tabelle 51.7</a> gibt eine &Uuml;bersicht
+der verf&uuml;gbaren Kommandos. <a name="jarkommandos"></a>
+
+<p>
+<table cols=2 border width=100%>
+
+<tr>
+<td valign=top align=left width=28%><b>Kommando</b></td>
+<td valign=top align=left width=71%><b>Bedeutung </b></td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>c</tt></font></td>
+<td valign=top align=left>Erzeugt eine neue Archivdatei (<i>create</i>).
+Kann nicht zusammen mit t oder x verwendet werden. </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>t</tt></font></td>
+<td valign=top align=left>Gibt das Inhaltsverzeichnis der Archivdatei
+aus (<i>table of contents</i>). Kann nicht zusammen mit c oder x verwendet
+werden. </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>x file</tt></font></td>
+<td valign=top align=left>Extrahiert eine oder mehrere Dateien aus
+dem Archiv (<i>extract</i>). Kann nicht zusammen mit c oder t verwendet
+werden. </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>u</tt></font></td>
+<td valign=top align=left>F&uuml;gt die angegebenen Dateien in die
+bestehende Archivdatei ein. </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>f</tt></font></td>
+<td valign=top align=left>Gibt an, dass der n&auml;chste Parameter
+der Name der Archivdatei ist. Wird das Kommando f nicht angegeben,
+verwendet jar statt dessen die Standardein- und -ausgabe. </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>v</tt></font></td>
+<td valign=top align=left>Gibt zus&auml;tzliche Informationen aus
+(<i>verbose</i>). Kann zus&auml;tzlich zu einem der anderen Kommandos
+verwendet werden. </td></tr>
+<tr>
+<td valign=top align=left><font color="#000077"><tt>0</tt></font></td>
+<td valign=top align=left>Die Dateien werden ohne Kompression gespeichert.
+</td></tr>
+</table>
+<p><i>
+Tabelle 51.7: Kommandos von jar </i></p>
+
+<p>
+Sollen beispielsweise alle <font color="#660099">.java</font>-Dateien
+des aktuellen Verzeichnisses in ein Archiv mit der Bezeichnung <font color="#660099">xyz.jar</font>
+gepackt werden, so kann dazu folgendes Kommando verwendet werden:
+<font color="#000077">
+<pre>
+jar cf xyz.jar *.java
+</pre>
+</font>
+
+<p>
+Das Inhaltsverzeichnis des Archivs kann folgenderma&szlig;en abgerufen
+werden:
+<font color="#000077">
+<pre>
+jar tf xyz.jar
+</pre>
+</font>
+
+<p>
+Etwas ausf&uuml;hrlicher geht es mit:
+<font color="#000077">
+<pre>
+jar tvf xyz.jar
+</pre>
+</font>
+
+<p>
+Um die Datei <font color="#660099">Test.java</font> aus dem Archiv
+zu extrahieren, kann das folgende Kommando verwendet werden (das nat&uuml;rlich
+auch ohne den Zusatz <font color="#000077"><tt>v</tt></font> funktioniert):
+<font color="#000077">
+<pre>
+jar xvf xyz.jar Test.java
+</pre>
+</font>
+
+
+<!-- Section -->
+<a name="sectlevel3id051006004"></a>
+<h3>51.6.4 Verwendung von jar-Dateien in Applets </h3>
+
+<p>
+Die Verwendung von <font color="#660099">jar</font>-Dateien in Applets
+erfolgt mit Hilfe des <a name="ixa103781"><a href="index_a.html#ixb102155"><font color=#000080><tt>ARCHIVE</tt></font></a></a>-Parameters
+des APPLET-Tags<a name="ixa103782"></a> (siehe <a href="k100248.html#kapitelapplets1">Kapitel 39</a>).
+Soll beispielsweise das &#187;Hello, World&#171;-Programm <font color="#660099">HWApplet.java</font>
+aus <a href="k100251.html#hwapplet">Listing 39.7</a> aus einem <font color="#660099">jar</font>-Archiv
+<font color="#660099">hello.jar</font> ausgef&uuml;hrt werden, so
+ist in den folgenden Schritten vorzugehen.
+
+<p>
+Zun&auml;chst werden die Dateien <font color="#660099">HWApplet.class</font>,
+<font color="#660099">hello.au</font> und <font color="#660099">world.au</font>
+in ein <font color="#660099">jar</font>-Archiv gepackt:
+<font color="#000077">
+<pre>
+jar cvf hello.jar HWApplet.class hello.au world.au
+</pre>
+</font>
+
+<p>
+Anschlie&szlig;end wird die HTML-Datei <font color="#660099">HWApplet.html</font>
+zum Aufruf des Applets erstellt:
+<a name="listingid051001"></a>
+
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
+<tr>
+<td valign=top>
+<font color="#000055">
+<pre>
+<font color="#555555">001 </font><font color="#0000AA">&lt;html&gt;</font>
+<font color="#555555">002 </font><font color="#0000AA">&lt;head&gt;</font>
+<font color="#555555">003 </font><font color="#0000AA">&lt;title&gt;</font>HWApplet<font color="#0000AA">&lt;/title&gt;</font>
+<font color="#555555">004 </font><font color="#0000AA">&lt;/head&gt;</font>
+<font color="#555555">005 </font><font color="#0000AA">&lt;body&gt;</font>
+<font color="#555555">006 </font><font color="#0000AA">&lt;h1&gt;</font>HWApplet<font color="#0000AA">&lt;/h1&gt;</font>
+<font color="#555555">007 </font><font color="#0000AA">&lt;applet
+<font color="#555555">008 </font> code=HWApplet.class
+<font color="#555555">009 </font> archive=hello.jar
+<font color="#555555">010 </font> width=300
+<font color="#555555">011 </font> height=200&gt;</font>
+<font color="#555555">012 </font>Hier steht das Applet HWApplet.class
+<font color="#555555">013 </font><font color="#0000AA">&lt;/applet&gt;</font>
+<font color="#555555">014 </font><font color="#0000AA">&lt;/body&gt;</font>
+<font color="#555555">015 </font><font color="#0000AA">&lt;/html&gt;</font></pre>
+</font>
+</td>
+<td valign=top align=right>
+<a href="../examples/HWApplet.html"><font color="#000055" size=-1>HWApplet.html</font></a></td>
+</tr>
+</table>
+<i>
+Listing 51.1: HTML mit ARCHIVE-Tag</i></p>
+
+<p>
+Nun kann das Applet wie bisher gestartet werden, ben&ouml;tigt aber
+zum Laden aller Dateien nur noch eine einzige HTTP-Transaktion.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Leider unterst&uuml;tzen noch nicht alle Browser das <a href="index_j.html#ixb100146"><font color=#000080><tt>jar</tt></font></a>-Format,
+so dass seine Verwendung zum heutigen Zeitpunkt &uuml;berlegt sein
+will. F&uuml;r die nahe Zukunft ist es aber ein wichtiger Schritt
+zur Verbesserung der Ladezeiten von Applets.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF">&nbsp;Hinweis&nbsp;</font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html">&nbsp;Titel&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html">&nbsp;Inhalt&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html">&nbsp;Suchen&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;Index&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()">&nbsp;DOC&nbsp;</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="k100317.html">&nbsp;&lt;&lt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100322.html">&nbsp;&nbsp;&lt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100324.html">&nbsp;&nbsp;&gt;&nbsp;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html">&nbsp;&gt;&gt;&nbsp;</a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()">&nbsp;API&nbsp;</a>
+<td align="right">&copy; 1998, 2007 Guido Kr&uuml;ger &amp; Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>