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
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
|
<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,k100013.html;106,k100014.html;107,k100016.html;108,k100018.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="k100013.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100014.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100016.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100018.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 2 - Schnelleinstieg
</table>
<hr>
<!-- Section -->
<a name="sectlevel2id002002"></a>
<h2>2.2 <a name="ixa100150">Erste Gehversuche</a></h2>
<hr>
<ul>
<li><a href="k100015.html#sectlevel2id002002">2.2 Erste Gehversuche</a>
<ul>
<li><a href="k100015.html#sectlevel3id002002001">2.2.1 Quelltext erstellen, übersetzen und ausführen</a>
<ul>
<li><a href="k100015.html#sectlevel4id002002001001">1. Vorbereitung</a>
<li><a href="k100015.html#sectlevel4id002002001002">2. Erstellen des Quelltextes </a>
<li><a href="k100015.html#sectlevel4id002002001003">3. Übersetzen des Quelltextes</a>
<li><a href="k100015.html#sectlevel4id002002001004">4. Ausführen des erzeugten Programms</a>
<li><a href="k100015.html#sectlevel4id002002001005">5. Beenden des Programms</a>
</ul>
<li><a href="k100015.html#beispielprogramme">2.2.2 Die Beispielprogramme</a>
<ul>
<li><a href="k100015.html#sectlevel4id002002002001">Starten der Beispielprogramme</a>
<li><a href="k100015.html#sectlevel4id002002002002">Zusätzlich erforderliche Dateien</a>
</ul>
</ul>
</ul>
<hr>
<p>
Falls Sie die ersten Gehversuche in Java machen wollen, ohne erst
viele Grundlagen lernen zu müssen, oder wenn Sie einfach nur
daran interessiert sind, möglichst schnell Ihr erstes Java-Programm
auszuführen, dann sollten Sie den vorliegenden Abschnitt lesen.
Sie erfahren hier in komprimierter Form, wie Sie ein einfaches Programm
erstellen und mit den Werkzeugen des JDK übersetzen und ausführen.
Zusätzlich gibt es einige Hinweise, um einfache Ein- und Ausgaben
durchzuführen.
<!-- Section -->
<a name="sectlevel3id002002001"></a>
<h3>2.2.1 Quelltext erstellen, übersetzen und ausführen
</h3>
<!-- Section -->
<a name="sectlevel4id002002001001"></a>
<h4>1. Vorbereitung </h4>
<p>
Installieren Sie das JDK wie in <a href="k100014.html#jdkinstallation">Abschnitt 2.1</a>
beschrieben, und sorgen Sie dafür, dass in Ihrer Pfadangabe das
Verzeichnis <font color="#660099">\jdk1.6\bin</font> enthalten ist.
Falls Sie das JDK nicht nach <font color="#660099">c:\jdk1.6</font>
installiert haben, passen Sie die Pfadangaben entsprechend an. Ein
Aufruf von <font color="#000077"><tt>PATH</tt></font> zeigt an, ob
der Pfad korrekt gesetzt ist, durch Eingabe von <font color="#000077"><tt>java
-version</tt></font> können Sie die installierte JDK-Version
überprüfen:
<p>
<a name="imageid002001"></a>
<img src="images/FirstSteps1.gif">
<p>
<p><i>
Abbildung 2.1: Ist das JDK korrekt installiert?</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>
Seit Java 5.0 unterstützen nicht nur der Interpreter, sondern
auch der Java-Compiler den Schalter <a href="index_0.html#ixb100148"><font color=#000080><tt>-version</tt></font></a>.
Durch Eingabe von <font color="#000077"><tt>javac -version</tt></font>
können Sie also überprüfen, ob auch der Java-Compiler
in der aktuellsten Version vorliegt. Ältere Compiler-Versionen
geben eine Fehlermeldung aus.</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="sectlevel4id002002001002"></a>
<h4>2. Erstellen des Quelltextes<a name="ixa100151"></a> <a name="ixa100152"></a>
</h4>
<p>
Erstellen Sie mit einem beliebigen Texteditor die folgende Datei <font color="#660099">Hello.java</font>:
<a name="helloworld"></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="#00AA00">/* Hello.java */</font>
<font color="#555555">002 </font>
<font color="#555555">003 </font><font color="#0000AA">public</font> <font color="#0000AA">class</font> Hello
<font color="#555555">004 </font>{
<font color="#555555">005 </font> <font color="#0000AA">public</font> <font color="#0000AA">static</font> <font color="#006699">void</font> main(String[] args)
<font color="#555555">006 </font> {
<font color="#555555">007 </font> System.out.println(<font color="#0000FF">"Hello, world"</font>);
<font color="#555555">008 </font> }
<font color="#555555">009 </font>}</pre>
</font>
</td>
<td valign=top align=right>
<a href="../examples/Hello.java"><font color="#000055" size=-1>Hello.java</font></a></td>
</tr>
</table>
<i>
Listing 2.1: Hello, world</i></p>
<p>
Die korrekt erstellte Datei enthält die Definition der Klasse
<font color="#000077"><tt>Hello</tt></font> mit der Methode <a name="ixa100153"><a href="index_m.html#ixb100150"><font color=#000080><tt>main</tt></font></a></a>,
die das Hauptprogramm unserer Applikation enthält. Bitte geben
Sie die am Anfang jeder Zeile stehenden Zeilennummern <i>nicht</i>
mit ein. Sie dienen lediglich dazu, auf Teile des Listings verweisen
zu können und werden beim Erstellen des Buchs automatisch generiert.
Der Java-Compiler kann damit nichts anfangen.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Achten Sie bei der Vergabe der Datei- und Klassennamen auf korrekte
Groß-/Kleinschreibung. Sowohl der Compiler als auch das Laufzeitsystem
erwarten, dass die Hauptklasse einer Quelldatei genauso geschrieben
wird wie der Name der Datei, in der sie sich befindet. Der Dateiname
unserer Beispielklasse <font color="#000077"><tt>Hello</tt></font>
lautet daher <font color="#660099">Hello.java</font> und nicht <font color="#660099">hello.java</font>,
<font color="#660099">HELLO.JAVA</font> oder <font color="#660099">HELLO.JAV</font>.
Erstellen Sie die Datei nicht auf Systemen oder Laufwerken (beispielsweise
im Netz), die keine langen Dateinamen unterstützen. Der Compiler
würde die Datei in diesem Fall nicht finden.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
<tr>
<td><font color="#FFFFFF"> Warnung </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
</tr>
</table>
<p>
Sie können zum Editieren beispielsweise <i>notepad</i> oder <i>edit</i>
(unter Windows) oder <i>vi</i> oder <i>Emacs</i> (gibt es für
UNIX und Windows) verwenden. Ein guter Windows-Editor, der fast ebensoviel
kann wie seine professionellen (und sehr viel teureren) Brüder,
ist <i>TextPad</i> von <i>Helios Software Solutions</i>. Eine Testversion
kann von <a href="http://www.textpad.com">http://www.textpad.com</a>
heruntergeladen werden, die Vollversion ist für wenig Geld zu
haben. Wer ein wenig Einarbeitungszeit, Konfigurationsaufwand und
das Erlernen von Grundkenntnissen in LISP nicht scheut, der sollte
sich <i>Emacs</i> näher ansehen. Wenn Sie statt eines Editor
lieber mit einer auf Java abgestimmten Integrierten Entwicklungsumgebung
(IDE) arbeiten ist das freie Eclipse-Framework oder die IntelliJ IDEA
eventuell das richtige für Sie. Beide sind ebenfalls vollständig
in Java geschrieben und liegen als Testversion der DVD bei.
<p>
<a name="imageid002002"></a>
<img src="images/FirstSteps2.gif">
<p>
<p><i>
Abbildung 2.2: Hello.java im Windows-Notepad</i></p>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Werden die (wenig empfehlenswerten) Windows-Editoren <i>notepad</i>
oder <i>edit</i> verwendet, kann man als Anfänger unter Umständen
einige Überraschungen erleben:
<ul>
<li><i>notepad</i> hängt beim ersten Speichern einer Datei die
Erweiterung <font color="#660099">.txt</font> an den Dateinamen an.
Aus <font color="#660099">Test1.java</font> wird also <font color="#660099">Test1.java.txt</font>.
Eine solche Datei wird von <font color="#000077"><tt>javac</tt></font>
natürlich nicht mehr akzeptiert. Nach dem ersten Speichern muss
also zunächst durch Umbenennen im Explorer der korrekte Dateiname
hergestellt werden. Wird die Datei wiederholt geöffnet und gespeichert,
treten diese Probleme nicht mehr auf. Alternativ kann beim ersten
Speichern der Dateiname in Anführungszeichen gesetzt werden,
also »Test1.java« geschrieben werden.
<li>Wird <i>edit</i> verwendet, kann es zwei Probleme geben. Erstens
verwendet das Programm den MS-DOS-Zeichensatz und versieht so Programme
mit Windows-Oberfläche mit unbrauchbaren Umlauten (sie wären
dann nur für Windows-Konsolenanwendungen korrekt). Zweitens unterstützt
<i>edit</i> unter NT 4 keine langen Dateinamen. Das Programm würde
beispielsweise die Datei <font color="#660099">Test1.java</font> als
<font color="#660099">TEST1.JAV</font> abspeichern und somit ebenfalls
für den Compiler unerreichbar machen.
</ul>
</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
<tr>
<td><font color="#FFFFFF"> Warnung </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id002002001003"></a>
<h4>3. <a name="ixa100154">Übersetzen des Quelltextes</a> </h4>
<p>
Übersetzen Sie die Datei mit dem Kommando <a name="ixa100155"><a href="index_j.html#ixb100152"><font color=#000080><tt>javac</tt></font></a></a>
(so heißt der Java-Compiler des JDK). Wenn Sie keinen Fehler
gemacht haben, wird der Compileraufruf kommentarlos akzeptiert, und
Sie sehen wieder den DOS-Prompt:
<p>
<a name="imageid002003"></a>
<img src="images/FirstSteps3.gif">
<p>
<p><i>
Abbildung 2.3: Übersetzen von Hello.java</i></p>
<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>
Alle wichtigen Werkzeuge des JDK arbeiten kommandozeilenorientiert.
Sie haben also keine grafische Oberfläche, sondern werden in
einer DOS-Box aufgerufen und durch Aufrufparameter gesteuert. Eine
integrierte Entwicklungsumgebung mit integriertem Editor, Compiler
und Debugger bietet das JDK nicht. Eine DOS-Box wird unter Windows
9x über den Eintrag »MS-DOS-Eingabeaufforderung« aufgerufen,
der im Startmenü unter »Programme« liegt. Eine Übersicht
über die JDK-Werkzeuge und ihre Bedienung finden Sie in <a href="k100317.html#kapitelwerkzeuge">Kapitel 51</a>.</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"> Hinweis </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Falls Sie Programme schreiben, in denen die sprachlichen Erweiterungen
der Java-Versionen 1.4 oder höher verwendet werden, müssen
Sie unter Umständen eine der Compileroptionen <a name="ixa100156"><a href="index_0.html#ixb100153"><font color=#000080><tt>-source 1.4</tt></font></a></a>
bzw. <a name="ixa100157"><a href="index_0.html#ixb100154"><font color=#000080><tt>-source 1.5</tt></font></a></a>
angeben, damit der Compiler die Programme übersetzen kann. Dies
betrifft vor allem die in <a href="k100044.html#assertanweisung">Abschnitt 6.4.1</a>
beschriebenen Assertions und einige der mit der J2SE 5.0 eingeführten
Spracherweiterungen. </td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
<tr>
<td><font color="#FFFFFF"> Warnung </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id002002001004"></a>
<h4>4. Ausführen des erzeugten Programms </h4>
<p>
Sie haben nun eine Datei <font color="#660099">Hello.class</font>
erzeugt, die mit dem Java-Interpreter ausgeführt werden kann.
Das Programm wird aufgerufen und gibt die gewünschte Meldung
auf dem Bildschirm aus:
<p>
<a name="imageid002004"></a>
<img src="images/FirstSteps4.gif">
<p>
<p><i>
Abbildung 2.4: Ausführen von Hello</i></p>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Wenn der Interpreter den Bytecode zur angegebenen Klassendatei nicht
finden kann, gibt er eine Fehlermeldung <a name="ixa100158"><a href="index_n.html#ixb100155"><font color=#000080><tt>NoClassDefFoundError</tt></font></a></a>
aus. Wenn die <font color="#660099">.class</font>-Datei tatsächlich
vorhanden ist, liegt das fast immer daran, dass der Name der Klasse
falsch geschrieben wurde oder dass darin keine oder eine falsch deklarierte
<a href="index_m.html#ixb100150"><font color=#000080><tt>main</tt></font></a>-Methode
vorhanden ist. Beachten Sie, dass die Erweiterung <font color="#660099">.class</font>
beim Aufruf des Interpreters nicht an den Namen der auszuführenden
Klasse angehängt werden darf.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
<tr>
<td><font color="#FFFFFF"> Warnung </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id002002001005"></a>
<h4>5. Beenden des Programms </h4>
<p>
Ein einfaches Java-Programm wird automatisch beendet, wenn seine <a href="index_m.html#ixb100150"><font color=#000080><tt>main</tt></font></a>-Methode
beendet wurde (in welchen Fällen das nicht so ist, wird am Ende
von <a href="k100145.html#neuerthread">Abschnitt 22.2.1</a> beschrieben).
Unser Programm wird also nach der Ausgabe von »Hello, world«
beendet. Es gibt natürlich auch Fälle, bei denen ein gestartetes
Programm nicht ordnungsgemäß zum Ende kommt und auch auf
Benutzereingaben nicht mehr reagiert - meistens ist dafür eine
Endlosschleife verantwortlich. Glücklicherweise läßt
sich die virtuelle Maschine, in der das Java-Programm läuft,
fast immer durch Drücken von <font color="#007700"><tt>[STRG]</tt></font>+<font color="#007700"><tt>[C]</tt></font>
abbrechen. Diese »Notbremse« sollte allerdings nur im Notfall
gezogen werden, denn sie beendet das Programm augenblicklich und hinterlässt
dessen Daten möglicherweise in einem inkonsistenten Zustand.
<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>
Falls Sie es trotz aller Bemühungen bis zu diesem Punkt noch
nicht geschafft haben, das Beispiel zu übersetzen und zu starten,
kann Ihnen möglicherweise <a href="k100016.html#troubleshooting">Abschnitt 2.3.7</a>
weiterhelfen. Er beschreibt einige häufig vorkommende Fehler,
gibt Tipps zu ihrer Diagnose und zeigt, wie man sie behebt.</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="beispielprogramme"></a>
<h3>2.2.2 Die Beispielprogramme </h3>
<!-- Section -->
<a name="sectlevel4id002002002001"></a>
<h4><a name="ixa100159">Starten der Beispielprogramme</a></h4>
<p>
Auf die im vorigen Abschnitt beschriebene Weise können nun beliebige
Java-Programme angelegt, übersetzt und ausgeführt werden.
Die im Buch abgedruckten Beispielprogramme befinden sich auf der DVD
im Verzeichnis <font color="#660099">\examples</font>. Kopieren Sie
diese einschließlich der darin enthaltenen Unterverzeichnisse
in ein beliebiges Verzeichnis auf Ihrer Festplatte. Benutzen Sie einen
beliebigen Editor zur Eingabe oder Veränderung von <font color="#660099">.java</font>-Dateien<a name="ixa100160"></a>,
übersetzen Sie die Datei mit dem Kommando <a name="ixa100161"><a href="index_j.html#ixb100152"><font color=#000080><tt>javac</tt></font></a></a>,
und starten Sie das fertige Programm mit dem Kommando <a name="ixa100162"><a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a></a>.
Falls Sie ein Applet geschrieben haben, erstellen Sie zusätzlich
eine passende HTML-Datei, und starten Sie das Programm mit dem Kommando
<a name="ixa100163"><a href="index_a.html#ixb100158"><font color=#000080><tt>appletviewer</tt></font></a></a>
anstatt mit <a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a>.
Die Originalversionen der Beispielprogramme wurden bereits vorkompiliert
und können direkt mit dem Java-Interpreter ausgeführt werden.
<p>
Als Entwicklungssysteme für dieses Buch wurden die Versionen
1.1 bis 6.0 des JDK verwendet. Die meisten Beispiele wurden unter
Windows 95, 98 und XP entwickelt und getestet, einige wenige auch
unter NT, SUSE Linux oder Solaris. In die Beispiellistings aus dem
AWT sind einige Hinweise von Lesern mit SUN-Solaris-Plattformen eingeflossen.
Keines der Programme wurde vom Autor auf einem Macintosh getestet
(mangels Verfügbarkeit). Bei Verwendung anderer Plattformen könnte
es zu leichten Abweichungen bei der Installation, der Funktionalität
der Entwicklungswerkzeuge oder den Eigenschaften der Standardbibliothek
kommen.
<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>
Die <font color="#660099">.class</font>-Dateien im <font color="#660099">\examples</font>-Verzeichnis
der DVD wurden mit dem Java-6.0-Compiler erzeugt. Falls es Probleme
geben sollte, ein bestimmtes Beispielprogramm mit einem älteren
Java-Interpreter zu starten, hilft eventuell Neukompilieren dieses
Programms mit dem älteren Compiler. Nur eine Handvoll Beispielprogramme
verwenden Code, der mindestens das JDK 1.4, 5.0 oder sogar 6.0 erfordert,
die meisten können auch mit älteren JDKs kompiliert und
ausgeführt werden.</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"> Hinweis </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id002002002002"></a>
<h4>Zusätzlich erforderliche Dateien </h4>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=1></td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Der mit Abstand häufigste Fehler beim Starten der Beispielprogramme
passiert dadurch, dass nicht alle benötigten <font color="#660099">.class</font>-Dateien
im aktuellen Verzeichnis liegen. Denn neben der kompilierten Klassendatei
benötigen die Beispielprogramme mitunter weitere <font color="#660099">.class</font>-Dateien.
Werden die Beispiele direkt aus dem <font color="#660099">examples</font>-Verzeichnis
der DVD (oder einer vollständigen Kopie davon) gestartet, treten
keine Probleme auf. Werden jedoch nur einzelne Klassendateien kopiert,
kann es beim Aufruf von <a href="index_j.html#ixb100157"><font color=#000080><tt>java</tt></font></a>
zu Fehlern des Typs <a name="ixa100164"><a href="index_n.html#ixb100155"><font color=#000080><tt>NoClassDefFoundError</tt></font></a></a>
kommen. Der häufigste weist auf einen fehlenden <a name="ixa100165"><a href="index_w.html#ixb100159"><font color=#000080><tt>WindowClosingAdapter</tt></font></a></a>
hin, der von den meisten GUI-Beispielen benötigt wird. In diesem
Fall müssen lediglich die fehlenden Dateien <font color="#660099">WindowClosingAdapter.java</font>
und <font color="#660099">WindowClosingAdapter.class</font> aus dem
<font color="#660099">examples</font>-Verzeichnis in das aktuelle
Verzeichnis kopiert werden.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#CC0000">
<tr>
<td><font color="#FFFFFF"> Warnung </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#CC0000"><img src="trp1_1.gif"></td>
</tr>
</table>
<p>
Mitunter werden neben den <font color="#660099">.class</font>-Dateien
noch weitere Dateien benötigt, damit das Beispiel korrekt läuft.
So erfordert etwa <a href="k100178.html#aendernfensterelemente">Listing 27.4</a>
zusätzlich die Datei <font color="#660099">testicon.gif</font>,
damit das Fenster-Icon korrekt angezeigt wird. Und um das Beispiel
zum Abspielen von Midi-Dateien in <a href="k100310.html#mididateien">Abschnitt 49.3.5</a>
wie angegeben ausführen zu können, wird die Datei <font color="#660099">ame.mid</font>
benötigt. Diese Dateien liegen in aller Regel ebenfalls im <font color="#660099">examples</font>-Verzeichnis
und sollten bei Bedarf auch in das Startverzeichnis des Beispielprogramms
kopiert werden.
<p>
In einigen Kapiteln werden Themen behandelt, die zusätzliche
jar-Archive fordern, weil die entsprechende Funktionalität nicht
im Standardumfang des JDK enthalten ist oder weil herstellerspezifische
Treiber erforderlich sind. Hierzu zählen insbesondere <a href="k100088.html#dasjnlpapi">Abschnitt 13.5.3</a>,
<a href="k100171.html#javacommapi">Abschnitt 26.4.1</a> und <a href="k100265.html#kapiteljdbc">Kapitel 42</a>.
Wo die entsprechenden jar-Archive zu finden sind, wird in den jeweiligen
Abschnitten erläutert. Wie sie in den <a href="index_c.html#ixb100143"><font color=#000080><tt>CLASSPATH</tt></font></a>
eingebunden werden, damit Compiler und Interpreter sie finden, wird
in <a href="k100085.html#zuspaketeeinbinden">Abschnitt 13.2.3</a>
erklärt.
<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="k100013.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100014.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100016.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100018.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>
|