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
|
<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,k100317.html;107,k100319.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"> 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="k100317.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100317.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100319.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.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 51 - Hilfsprogramme des JDK
</table>
<hr>
<!-- Section -->
<a name="sectlevel2id051001"></a>
<h2>51.1 javac - Der <a name="ixa103689">Compiler</a> </h2>
<hr>
<ul>
<li><a href="k100318.html#sectlevel2id051001">51.1 javac - Der Compiler</a>
<ul>
<li><a href="k100318.html#sectlevel3id051001001">51.1.1 Aufruf</a>
<li><a href="k100318.html#sectlevel3id051001002">51.1.2 Beschreibung</a>
<li><a href="k100318.html#sectlevel3id051001003">51.1.3 Optionen</a>
</ul>
</ul>
<hr>
<p>
In diesem Kapitel wollen wir die wichtigsten Hilfsprogramme des Java
Development Kit bzw. Java Runtime Environment vorstellen. Die meisten
Programme arbeiten kommandozeilenorientiert und werden aus einer DOS-Box
oder einer Shell heraus aufgerufen. Einige von ihnen sind interaktiv
und haben eine einfache grafische Oberfläche. Wir wollen die
Aufrufsyntax und wichtigsten Optionen der folgenden Programme vorstellen:
<ul>
<li><a href="index_j.html#ixb100152"><font color=#000080><tt>javac</tt></font></a>
- Der Compiler
<li><a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a>
- Der Interpreter
<li><a href="index_a.html#ixb100158"><font color=#000080><tt>appletviewer</tt></font></a>
- Der Applet-Interpreter
<li><a href="index_j.html#ixb102764"><font color=#000080><tt>jdb</tt></font></a>
- Der Debugger
<li><a href="index_j.html#ixb100186"><font color=#000080><tt>javadoc</tt></font></a>
- Der Dokumentationsgenerator
<li><a href="index_j.html#ixb100146"><font color=#000080><tt>jar</tt></font></a>
- Das Archivierungswerkzeug
<li><a href="index_j.html#ixb102765"><font color=#000080><tt>javap</tt></font></a>
- Der Disassembler
<li><a href="index_s.html#ixb102218"><font color=#000080><tt>serialver</tt></font></a>
- Zugriff auf die <a href="index_s.html#ixb102217"><font color=#000080><tt>serialVersionUID</tt></font></a>
<li><a href="index_k.html#ixb102608"><font color=#000080><tt>keytool</tt></font></a>
- Verwaltung von kryptografischen Schlüsseln
<li><a href="index_p.html#ixb102638"><font color=#000080><tt>policytool</tt></font></a>
- Bearbeiten von Policy-Dateien
<li><a href="index_j.html#ixb102634"><font color=#000080><tt>jarsigner</tt></font></a>
- Signieren von Archiven
<li><a href="index_r.html#ixb102558"><font color=#000080><tt>rmic</tt></font></a>
- Erzeugen von RMI-Stubs und -Skeletons
<li><a href="index_r.html#ixb102559"><font color=#000080><tt>rmiregistry</tt></font></a>
- RMI-Namensservice
</ul>
<!-- Section -->
<a name="sectlevel3id051001001"></a>
<h3>51.1.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>
javac [ options ] [@filelist | { filename.java }]
</pre>
</font>
</td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel3id051001002"></a>
<h3>51.1.2 Beschreibung </h3>
<p>
Der Compiler <a name="ixa103690"><a href="index_j.html#ixb100152"><font color=#000080><tt>javac</tt></font></a></a>
übersetzt Sourcecode in Bytecode. Zu jeder Klasse, die innerhalb
einer <font color="#660099">.java</font>-Datei<a name="ixa103691"></a>
definiert wurde, wird eine eigene <font color="#660099">.class</font>-Datei<a name="ixa103692"></a>
erzeugt. Der Compiler wacht automatisch über die <a name="ixa103693">Abhängigkeiten
zwischen den Quelldateien</a>. Wird beispielsweise
in einer Klasse <font color="#000077"><tt>X</tt></font> in der Datei
<font color="#660099">X.java</font> eine Klasse <font color="#000077"><tt>Y</tt></font>,
die in <font color="#660099">Y.java</font> liegt, verwendet, so wird
<font color="#660099">Y.java</font> automatisch mit übersetzt,
wenn es erforderlich ist. Anstelle der Liste von Dateinamen kann nach
einem @ auch eine Textdatei angegeben werden, in der die zu übersetzenden
Dateien durch Whitespaces getrennt angegeben werden.
<!-- Section -->
<a name="sectlevel3id051001003"></a>
<h3>51.1.3 Optionen </h3>
<a name="tableid051001"></a>
<p>
<table cols=2 border width=100%>
<tr>
<td valign=top align=left width=33%><b>Option</b></td>
<td valign=top align=left width=66%><b>Bedeutung </b></td></tr>
<tr>
<td valign=top align=left><a name="ixa103694"><a href="index_0.html#ixb100148"><font color=#000080><tt>-version</tt></font></a></a></td>
<td valign=top align=left>Ausgabe der Versionsnummer (seit der Version
5.0 verfügbar). </td></tr>
<tr>
<td valign=top align=left><a name="ixa103695"><a href="index_0.html#ixb100183"><font color=#000080><tt>-classpath path</tt></font></a></a></td>
<td valign=top align=left>Gibt die Liste der Pfade zur Suche von Klassendateien
an. Dieser Schalter übersteuert den Wert einer eventuell gesetzten
Umgebungsvariable <a href="index_c.html#ixb100143"><font color=#000080><tt>CLASSPATH</tt></font></a>.
Bezüglich der Auswirkungen des Klassenpfades in den unterschiedlichen
JDK-Versionen lesen Sie bitte <a href="k100085.html#bedeutungpaketnamen">Abschnitt 13.2.2</a>.
</td></tr>
<tr>
<td valign=top align=left><a name="ixa103696"><a href="index_0.html#ixb102767"><font color=#000080><tt>-g</tt></font></a></a></td>
<td valign=top align=left>Aktiviert die Erzeugung von Debug-Informationen.
Dieser Schalter sollte aktiviert werden, bevor ein Programm debugt
wird. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103697"><a href="index_0.html#ixb102768"><font color=#000080><tt>-nowarn</tt></font></a></a></td>
<td valign=top align=left>Deaktiviert die Ausgabe von Warnungen. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103698"><a href="index_0.html#ixb102769"><font color=#000080><tt>-O</tt></font></a></a></td>
<td valign=top align=left>Schaltet den Code-Optimierer an. Dessen
Fähigkeiten waren allerdings nie besonders ausgeprägt und
beschränkten sich bis zum JDK 1.2 vorwiegend auf das Expandieren
von Methodenaufrufen. In der Dokumentation zum JDK 1.3 steht sogar
die Anmerkung <i>Note: the -O option does nothing in the current implementation
of javac and oldjavac</i>, und seit dem JDK 1.4 ist der Schalter gar
nicht mehr dokumentiert. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103699"><a href="index_0.html#ixb102770"><font color=#000080><tt>-verbose</tt></font></a></a></td>
<td valign=top align=left>Aktiviert die Ausgabe von Meldungen über
geladene Quell- und Klassendateien während der Übersetzung.
</td></tr>
<tr>
<td valign=top align=left><a name="ixa103700"><a href="index_0.html#ixb102771"><font color=#000080><tt>-depend</tt></font></a></a></td>
<td valign=top align=left>Normalerweise wird eine Quelldatei neu kompiliert,
wenn das Datum der letzten Änderung nach dem Änderungsdatum
der Klassendatei liegt oder wenn die Klassendatei ganz fehlt. Mit
Hilfe dieses Schalters wird diese Entscheidung auf der Basis von Headerinformationen
in der Klassendatei auf eine zuverlässigere Weise getroffen.
Der Übersetzungsvorgang wird aber unter Umständen langsamer.
Dieser Schalter war bis zum JDK 1.1 vorhanden, wird aber mittlerweile
nicht mehr unterstützt. Die neueren Compiler erkennen die Abhängigkeiten
weitgehend automatisch. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103701"><a href="index_0.html#ixb102772"><font color=#000080><tt>-deprecation</tt></font></a></a></td>
<td valign=top align=left>Sorgt dafür, dass bei jedem Aufruf
einer als <a name="ixa103702"><a href="index_d.html#ixb100161"><font color=#000080><tt>deprecated</tt></font></a></a>
markierten Methode (<a name="ixa103703"><a href="index_0.html#ixb102773"><font color=#000080><tt>@deprecated</tt></font></a></a>-Marke
im Dokumentationskommentar) zusätzliche Informationen über
mögliche Workarounds ausgegegeben werden. Alle Methoden aus älteren
JDKs, die im aktuellen JDK nicht mehr verwendet werden sollen, werden
mit diesem Flag markiert. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103704"><a href="index_0.html#ixb102774"><font color=#000080><tt>-target version</tt></font></a></a></td>
<td valign=top align=left>Es wird Bytecode erstellt, der zu der angegebenen
Version des Laufzeitsystems kompatibel ist. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103705"><a href="index_0.html#ixb102775"><font color=#000080><tt>-source version</tt></font></a></a></td>
<td valign=top align=left>Es wird Sourcecode akzeptiert, der zu der
angegebenen Version kompatibel ist. Dieser Schalter ist ab JDK-Version
1.4 verfügbar, er wird in <a href="k100044.html#assertanweisung">Abschnitt 6.4.1</a>
erläutert. Auch für die sprachlichen Neuerungen der J2SE
5.0 wird diese Option benötigt (in der Form "-source 1.5"). </td></tr>
<tr>
<td valign=top align=left><a name="ixa103706"><a href="index_0.html#ixb102776"><font color=#000080><tt>-Xlint</tt></font></a></a></td>
<td valign=top align=left>Steht ab der J2SE 5.0 zur Verfügung
und aktiviert eine Reihe von Warnungen, die anzeigen, dass der Quelltext
Konstrukte enthält, die zwar legal, aber unter Umständen
problematisch sind. Als Beispiel wird in der Dokumentation eine Klasse
genannt, die zwar das Interface <a href="index_s.html#ixb100454"><font color=#000080><tt>Serializable</tt></font></a>
implementiert, aber keine eigene <a href="index_s.html#ixb102217"><font color=#000080><tt>serialVersionUID</tt></font></a>
zur Verfügung stellt. </td></tr>
</table>
<p><i>
Tabelle 51.1: Optionen von javac </i></p>
<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="k100317.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100317.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100319.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.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>
|