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
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
|
<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,k100318.html;107,k100320.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="k100318.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100320.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="derjavainterpreter"></a>
<h2>51.2 java - Der <a name="ixa103707">Interpreter</a> </h2>
<hr>
<ul>
<li><a href="k100319.html#derjavainterpreter">51.2 java - Der Interpreter</a>
<ul>
<li><a href="k100319.html#sectlevel3id051002001">51.2.1 Aufruf</a>
<li><a href="k100319.html#sectlevel3id051002002">51.2.2 Beschreibung</a>
<li><a href="k100319.html#sectlevel3id051002003">51.2.3 Optionen</a>
</ul>
</ul>
<hr>
<!-- Section -->
<a name="sectlevel3id051002001"></a>
<h3>51.2.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>
java [ options ] classname [{ args }]
javaw [ options ] classname [{ args }]
</pre>
</font>
</td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel3id051002002"></a>
<h3>51.2.2 Beschreibung </h3>
<p>
Der Interpreter <a name="ixa103708"><a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a></a>
dient dazu, kompilierte Java-Programme auszuführen, die als Bytecode
in <font color="#660099">.class</font>-Dateien vorliegen. <a name="ixa103709"><a href="index_j.html#ixb100177"><font color=#000080><tt>javaw</tt></font></a></a>
erfüllt denselben Zweck, erzeugt aber kein Terminalfenster beim
Start des Programms und erlaubt nicht die Verwendung der Standard-Streams
<a name="ixa103710"><a href="index_s.html#ixb100116"><font color=#000080><tt>System.in</tt></font></a></a>,
<a name="ixa103711"><a href="index_s.html#ixb100167"><font color=#000080><tt>System.out</tt></font></a></a>
und <a name="ixa103712"><a href="index_s.html#ixb100178"><font color=#000080><tt>System.err</tt></font></a></a>.
Beim Aufruf beider Programme wird der Name einer Klassendatei erwartet
(ohne die Erweiterung <font color="#660099">.class</font>). Damit
sie ausgeführt werden kann, muss sie eine Klassenmethode <a name="ixa103713"><a href="index_m.html#ixb100150"><font color=#000080><tt>main</tt></font></a></a>
mit folgender Signatur enthalten:
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
public static void main(String[] args)
</pre>
</font>
</td>
</tr>
</table>
<p>
Alle Argumente, die nach dem Namen der Klassendatei an <a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a>
übergeben werden, stehen nach dem Aufruf von <a href="index_m.html#ixb100150"><font color=#000080><tt>main</tt></font></a>
in <font color="#000077"><tt>args</tt></font> zur Verfügung.
Der Java-Interpreter wird nach dem Rücksprung aus <a href="index_m.html#ixb100150"><font color=#000080><tt>main</tt></font></a>
beendet, wenn keine eigenen Threads erzeugt wurden. Falls weitere
Threads erzeugt wurden, wird er verlassen, nachdem der letzte Vordergrund-Thread
beendet wurde.
<p>
Da während der Ausführung eines Java-Programms meist weitere
Klassendateien benötigt werden, muss der Interpreter wissen,
wo diese zu finden sind. Standardmäßig sucht er dabei im
systemspezifischen Installationsverzeichnis und im aktuellen Verzeichnis.
Die Suchstrategie kann durch Setzen der Umgebungsvariable <a href="index_c.html#ixb100143"><font color=#000080><tt>CLASSPATH</tt></font></a>
oder mit Hilfe der Option <a href="index_0.html#ixb100183"><font color=#000080><tt>-classpath</tt></font></a>
verändert werden. Sollen nur die Standardbibliotheken des JDK
verwendet werden, sind weder <a href="index_c.html#ixb100143"><font color=#000080><tt>CLASSPATH</tt></font></a>
noch <a href="index_0.html#ixb100183"><font color=#000080><tt>-classpath</tt></font></a>
erforderlich. Weitere Informationen zu <a href="index_c.html#ixb100143"><font color=#000080><tt>CLASSPATH</tt></font></a>-Einstellungen
finden Sie in <a href="k100085.html#bedeutungpaketnamen">Abschnitt 13.2.2</a>.
<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>
In der Windows-Version des JDK 1.2 ist ein <a name="ixa103714"><i>Just-In-Time-Compiler</i></a>
(kurz <a name="ixa103715"><i>JIT</i></a>) enthalten, der standardmäßig
aktiviert ist. Der JIT übersetzt zur Laufzeit des Programms häufig
benötigte Bytecodes in Maschinencode und beschleunigt so die
weitere Ausführung des Programms. Soll der JIT deaktiviert werden,
kann die Umgebungsvariable <a name="ixa103716"><a href="index_j.html#ixb102758"><font color=#000080><tt>JAVA_COMPILER</tt></font></a></a>
oder die Systemeigenschaft <a name="ixa103717"><a href="index_j.html#ixb102778"><font color=#000080><tt>java.compiler</tt></font></a></a>
auf den Wert NONE gesetzt werden.
<p>
Seit dem JDK 1.3 ist der adaptive Just-In-Time-Compiler <a name="ixa103718"><i>HotSpot</i></a>
fester Bestandteil der Auslieferung. Er kann mit der Option <a name="ixa103719"><a href="index_0.html#ixb102751"><font color=#000080><tt>-Xint</tt></font></a></a>
aus- und mit <a name="ixa103720"><a href="index_0.html#ixb102779"><font color=#000080><tt>-Xmixed</tt></font></a></a>
angeschaltet werden. Standardmäßig ist er aktiviert. Soll
im JDK 1.3 anstelle von HotSpot der JIT des JDK 1.2 verwendet werden,
kann dieser mit der Option <a name="ixa103721"><a href="index_0.html#ixb102780"><font color=#000080><tt>-Xclassic</tt></font></a></a>
aktiviert werden. Seit der Version 1.3.1 ist zusätzlich der bis
dahin nur separat erhältliche <a name="ixa103722"><i>Server-Hotspot</i></a>
im JDK enthalten. Er führt weitergehende (und kostspieligere)
Optimierungen aus als der <a name="ixa103723"><i>Client-Hotspot</i></a>
und ist vorwiegend für langlaufende Applikationen ohne direkte
Benutzeroberfläche gedacht. Er kann mit der Option <a name="ixa103724"><a href="index_0.html#ixb102783"><font color=#000080><tt>-server</tt></font></a></a>
aktiviert werden, während der Client-Hotspot auf <a name="ixa103725"><a href="index_0.html#ixb102784"><font color=#000080><tt>-client</tt></font></a></a>
reagiert.</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="sectlevel3id051002003"></a>
<h3>51.2.3 Optionen </h3>
<a name="tableid051002"></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="ixa103726"><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. Alternativ kann auch die Abkürzung <a name="ixa103727"><a href="index_0.html#ixb100182"><font color=#000080><tt>-cp</tt></font></a></a>
verwendet werden. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103728"><a href="index_0.html#ixb102756"><font color=#000080><tt>-prof</tt></font></a></a></td>
<td valign=top align=left>Aktiviert in Prä-1.2-Versionen des
JDK den <a name="ixa103729"><i>Profiler</i></a> im Interpreter, der
Informationen über das Laufzeitverhalten der Anwendung in die
Datei <font color="#660099">java.prof</font> schreibt. Ab dem JDK
1.2 wird der Profiler mit der Option <font color="#000077"><tt>-Xprof</tt></font>
bzw. <font color="#000077"><tt>-Xrunhpof</tt></font> aktiviert. Genaue
Informationen zur Verwendung des Profilers sind in <a href="k100315.html#profilereinsatz">Abschnitt 50.3</a>
zu finden. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103730"><a href="index_0.html#ixb100148"><font color=#000080><tt>-version</tt></font></a></a></td>
<td valign=top align=left>Ausgabe der Versionsnummer. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103731"><a href="index_0.html#ixb102785"><font color=#000080><tt>-help</tt></font></a></a></td>
<td valign=top align=left>Ausgabe eines kurzen Hilfetextes. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103732"><a href="index_0.html#ixb102770"><font color=#000080><tt>-verbose</tt></font></a></a></td>
<td valign=top align=left>Gibt bei jedem Laden einer Klasse eine Meldung
auf der Console aus. Seit dem JDK 1.3 können wahlweise die Schalter
<font color="#000077"><tt>:class</tt></font>, <font color="#000077"><tt>:gc</tt></font>
oder <font color="#000077"><tt>:jni</tt></font> angehängt werden.
<font color="#000077"><tt>:class</tt></font> entspricht dabei der
Voreinstellung, <font color="#000077"><tt>:gc</tt></font> dokumentiert
die Garbage-Collector-Aufrufe und <font color="#000077"><tt>:jni</tt></font>
zeigt die Verwendung von <i>Native Methods</i>. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103733"><a href="index_0.html#ixb102786"><font color=#000080><tt>-verbosegc</tt></font></a></a></td>
<td valign=top align=left>Veranlaßt den Garbage Collector bei
jedem Aufruf zur Ausgabe einer Nachricht. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103734"><a href="index_0.html#ixb102787"><font color=#000080><tt>-DpropName=value</tt></font></a></a></td>
<td valign=top align=left>Weist dem Property <font color="#000077"><tt>propName</tt></font>
den Wert <font color="#000077"><tt>value</tt></font> zu. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103735"><a href="index_0.html#ixb102744"><font color=#000080><tt>-Xms n</tt></font></a></a></td>
<td valign=top align=left>Spezifiziert die Größe des beim
Start allozierten Speichers. <i>n</i> ist dabei eine Ganzzahl mit
einer der Erweiterungen »k« oder »m«. Die Buchstaben
stehen für die Größenordnungen <i>kilo</i> und <i>mega</i>.
Die Standardeinstellung ist versions- und betriebssystemabhängig,
typische Werte sind <i>1m</i> oder <i>2m</i>. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103736"><a href="index_0.html#ixb102788"><font color=#000080><tt>-Xmx n</tt></font></a></a></td>
<td valign=top align=left>Spezifiziert die Größe des maximal
allozierbaren Speichers. <i>n</i> ist dabei eine Ganzzahl mit einer
der Erweiterungen »k« oder »m«. Die Standardeinstellung
ist versions- und betriebssystemabhängig, typische Werte sind
<i>16m</i> oder <i>64m</i>. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103737"><a href="index_0.html#ixb100362"><font color=#000080><tt>-enableassertions</tt></font></a></a></td>
<td valign=top align=left>Schaltet Assertions an (Abkürzung <a href="index_0.html#ixb100364"><font color=#000080><tt>-ea</tt></font></a>).
Dieser Schalter wird ausführlich in <a href="k100044.html#assertanweisung">Abschnitt 6.4.1</a>
erklärt. </td></tr>
<tr>
<td valign=top align=left><a name="ixa103738"><a href="index_0.html#ixb100363"><font color=#000080><tt>-disableassertions</tt></font></a></a></td>
<td valign=top align=left>Schaltet Assertions aus (Abkürzung
<a href="index_0.html#ixb100365"><font color=#000080><tt>-da</tt></font></a>).
Dieser Schalter wird ausführlich in <a href="k100044.html#assertanweisung">Abschnitt 6.4.1</a>
erklärt. </td></tr>
</table>
<p><i>
Tabelle 51.2: Optionen des Java-Interpreters </i></p>
<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>
In den 1.1er Versionen des JDK gab es ein Programm <a name="ixa103739"><a href="index_j.html#ixb102789"><font color=#000080><tt>jre</tt></font></a></a>,
das dazu diente, den Interpreter des Laufzeitsystems zu starten (<a name="ixa103740"><i>Java
Runtime Environment</i></a>). Dieses Programm
ist in der aktuellen JDK-Version nicht mehr vorhanden, sondern wird
durch das Programm <a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a>
ersetzt. Auch der in früheren Versionen vorhandene debugging-fähige
Interpreter <a name="ixa103741"><a href="index_j.html#ixb102757"><font color=#000080><tt>java_g</tt></font></a></a>
existiert seit dem JDK 1.2 nicht mehr.</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>
<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="k100318.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100320.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>
|