From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001
From: Sven Eisenhauer
+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.
+
+
+
+
+
+Installieren Sie das JDK wie in Abschnitt 2.1
+beschrieben, und sorgen Sie dafür, dass in Ihrer Pfadangabe das
+Verzeichnis \jdk1.6\bin enthalten ist.
+Falls Sie das JDK nicht nach c:\jdk1.6
+installiert haben, passen Sie die Pfadangaben entsprechend an. Ein
+Aufruf von PATH zeigt an, ob
+der Pfad korrekt gesetzt ist, durch Eingabe von java
+-version können Sie die installierte JDK-Version
+überprüfen:
+
+
+
+Abbildung 2.1: Ist das JDK korrekt installiert?
+
+Seit Java 5.0 unterstützen nicht nur der Interpreter, sondern
+auch der Java-Compiler den Schalter -version.
+Durch Eingabe von javac -version
+können Sie also überprüfen, ob auch der Java-Compiler
+in der aktuellsten Version vorliegt. Ältere Compiler-Versionen
+geben eine Fehlermeldung aus.
+Erstellen Sie mit einem beliebigen Texteditor die folgende Datei Hello.java:
+
+
+
+
+
+
+ Titel
+ Inhalt
+ Suchen
+ Index
+ DOC
+ Handbuch der Java-Programmierung, 5. Auflage
+
+ <<
+ <
+ >
+ >>
+ API
+ Kapitel 2 - Schnelleinstieg
+
+
+
+
+
+2.2 Erste Gehversuche
+
+
+
+
+2.2.1 Quelltext erstellen, übersetzen und ausführen
+
+
+
+
+
+1. Vorbereitung
+
+
+
+
+
+
+
+
+
+
+
+![]()
+
+![]()
+
+
+
+![]()
+
+
+
+
+
+ JDK1.1-6.0
+
+
2. Erstellen des Quelltextes
+
+
+
+
+
+Listing 2.1: Hello, world
+
+
+
+
+
+001 /* Hello.java */
+002
+003 public class Hello
+004 {
+005 public static void main(String[] args)
+006 {
+007 System.out.println("Hello, world");
+008 }
+009 }
+
+
+Hello.java
+
+Die korrekt erstellte Datei enthält die Definition der Klasse +Hello mit der Methode main, +die das Hauptprogramm unserer Applikation enthält. Bitte geben +Sie die am Anfang jeder Zeile stehenden Zeilennummern nicht +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. +
+
![]() |
+![]() |
+
+
+ +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 Hello +lautet daher Hello.java und nicht hello.java, +HELLO.JAVA oder HELLO.JAV. +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. |
+
+
|
+![]() |
+
+Sie können zum Editieren beispielsweise notepad oder edit +(unter Windows) oder vi oder Emacs (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 TextPad von Helios Software Solutions. Eine Testversion +kann von http://www.textpad.com +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 Emacs 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. +
+ +
+Abbildung 2.2: Hello.java im Windows-Notepad
++
![]() |
+![]() |
+
+
+ +Werden die (wenig empfehlenswerten) Windows-Editoren notepad +oder edit verwendet, kann man als Anfänger unter Umständen +einige Überraschungen erleben: +
|
+
+
|
+![]() |
+
+Übersetzen Sie die Datei mit dem Kommando javac +(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: +
+ +
+Abbildung 2.3: Übersetzen von Hello.java
++
![]() |
+
+
+ +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 Kapitel 51. |
+
+
|
+![]() |
+
+
![]() |
+![]() |
+
+
+ +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 -source 1.4 +bzw. -source 1.5 +angeben, damit der Compiler die Programme übersetzen kann. Dies +betrifft vor allem die in Abschnitt 6.4.1 +beschriebenen Assertions und einige der mit der J2SE 5.0 eingeführten +Spracherweiterungen. |
+
+
|
+![]() |
+
+Sie haben nun eine Datei Hello.class +erzeugt, die mit dem Java-Interpreter ausgeführt werden kann. +Das Programm wird aufgerufen und gibt die gewünschte Meldung +auf dem Bildschirm aus: +
+ +
+Abbildung 2.4: Ausführen von Hello
++
![]() |
+![]() |
+
+
+ +Wenn der Interpreter den Bytecode zur angegebenen Klassendatei nicht +finden kann, gibt er eine Fehlermeldung NoClassDefFoundError +aus. Wenn die .class-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 +main-Methode +vorhanden ist. Beachten Sie, dass die Erweiterung .class +beim Aufruf des Interpreters nicht an den Namen der auszuführenden +Klasse angehängt werden darf. |
+
+
|
+![]() |
+
+Ein einfaches Java-Programm wird automatisch beendet, wenn seine main-Methode +beendet wurde (in welchen Fällen das nicht so ist, wird am Ende +von Abschnitt 22.2.1 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 [STRG]+[C] +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. +
+
![]() |
+![]() |
+
+
+ +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 Abschnitt 2.3.7 +weiterhelfen. Er beschreibt einige häufig vorkommende Fehler, +gibt Tipps zu ihrer Diagnose und zeigt, wie man sie behebt. |
+
+
|
+![]() |
+
+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 \examples. 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 .java-Dateien, +übersetzen Sie die Datei mit dem Kommando javac, +und starten Sie das fertige Programm mit dem Kommando java. +Falls Sie ein Applet geschrieben haben, erstellen Sie zusätzlich +eine passende HTML-Datei, und starten Sie das Programm mit dem Kommando +appletviewer +anstatt mit java. +Die Originalversionen der Beispielprogramme wurden bereits vorkompiliert +und können direkt mit dem Java-Interpreter ausgeführt werden. + +
+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. +
+
![]() |
+
+
+ +Die .class-Dateien im \examples-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. |
+
+
|
+![]() |
+
+
![]() |
+![]() |
+
+
+ +Der mit Abstand häufigste Fehler beim Starten der Beispielprogramme +passiert dadurch, dass nicht alle benötigten .class-Dateien +im aktuellen Verzeichnis liegen. Denn neben der kompilierten Klassendatei +benötigen die Beispielprogramme mitunter weitere .class-Dateien. +Werden die Beispiele direkt aus dem examples-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 java +zu Fehlern des Typs NoClassDefFoundError +kommen. Der häufigste weist auf einen fehlenden WindowClosingAdapter +hin, der von den meisten GUI-Beispielen benötigt wird. In diesem +Fall müssen lediglich die fehlenden Dateien WindowClosingAdapter.java +und WindowClosingAdapter.class aus dem +examples-Verzeichnis in das aktuelle +Verzeichnis kopiert werden. |
+
+
|
+![]() |
+
+Mitunter werden neben den .class-Dateien +noch weitere Dateien benötigt, damit das Beispiel korrekt läuft. +So erfordert etwa Listing 27.4 +zusätzlich die Datei testicon.gif, +damit das Fenster-Icon korrekt angezeigt wird. Und um das Beispiel +zum Abspielen von Midi-Dateien in Abschnitt 49.3.5 +wie angegeben ausführen zu können, wird die Datei ame.mid +benötigt. Diese Dateien liegen in aller Regel ebenfalls im examples-Verzeichnis +und sollten bei Bedarf auch in das Startverzeichnis des Beispielprogramms +kopiert werden. + +
+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 Abschnitt 13.5.3, +Abschnitt 26.4.1 und Kapitel 42. +Wo die entsprechenden jar-Archive zu finden sind, wird in den jeweiligen +Abschnitten erläutert. Wie sie in den CLASSPATH +eingebunden werden, damit Compiler und Interpreter sie finden, wird +in Abschnitt 13.2.3 +erklärt. +
| Titel + | Inhalt + | Suchen + | Index + | DOC + | Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 + |
| << + | < + | > + | >> + | API + | © 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de + |