Lösungen Übung Einführung JDK
Transcription
Lösungen Übung Einführung JDK
Programmierung Java Lösungen Übung Einführung JDK Pascal Joos Seite 1 Übungen Lösungen Übung Einführung JDK 1.1 Konfiguration des JDK Nachdem Sie das JDK installiert haben, muss noch der PATH und der CLASSPATH gesetzt werden. Mit der „PATH“ Variable wird die automatische Suche nach Befehlen konfiguriert. So dass Sie stets von Überall aus den Java-Compiler „javac“ bzw. den Interpreter „java“ aufrufen können. Mit dem CLASSPATH wird dem Java-Compiler „javac“ und dem Interpreter „java“ mitgeteilt, wo er jeweils die nötigen Klassenlibraries hernehmen soll. Der Punkt am Schluss symbolisiert dabei das aktuelle Verzeichnis indem Sie sich gerade befinden. Dadurch werden gerade Ihre eigenen Klassen gefunden und verwendet. • Das Setzen der Variablen wird im System Menu erledigt. Am schnellsten kommen Sie dorthin, wenn Sie auf dem Desktop das Symbol „Arbeitsplatz“ mit der rechten Mausetaste anwählen und „Einstellungen“ im PopupMenu wählen. In dem darauf erscheinenden Dialog finden sie unter einem separaten Propertypage die Environment Variablen. Hinweis: Die Einstellungen werden dort erst übernommen wenn Sie denn Button „Set“ angeklickt haben !! Der Computer muss dabei nicht neu gestartet werden, die Systemvariablen werden automatisch übernommen. Aber falls Sie schon eine EingabeShell geöffnet haben, müssen Sie diese schliessen und nochmals neu öffnen. zuletzt überarbeitet:22.01.09 Seite:1/3 Höhere Fachschule Uster Seite Programmierung Java Lösungen Übung Einführung JDK 2 Übungen Pascal Joos 1.2 Eigene Java Applikationen 1.2.1 Inbetriebnahme einer Applikation mit externen Java Libraries Um diese Applikation zu kompilieren bzw. auszuführen zu können, müssen die externen Java Libraries angegeben werden. Dies erreicht man entweder durch setzen der CLASSPATH Umgebungsvariable oder durch setzen eines Parameters beim Aufruf des Compilers bzw. Interpreters. Die Variante mit dem CLASSPATH hat den Nachteil, dass es für alle Java Programme gesetzt ist, was unter Umständen nicht gewünscht ist. Die Variante mit dem Parameter gilt nur für den jeweiligen Aufruf und ist daher besser geeignet: Î Kompilierung (auf einer Linie) javac -classpath lib\xalan.jar;lib\xercesImpl.jar;lib\xmlParserAPIs.jar;. Csv2xmlDOM.java Î Ausführung (auf einer Linie) java -classpath lib\xalan.jar;lib\xercesImpl.jar;lib\xmlParserAPIs.jar;. Csv2xmlDOM Voraussetzung ist hier, dass wir uns vor der Eingabe im Verzeichnis der Übung befinden und die Installation des JDK erfolgreich durchführen konnten. Werden die Libraries bzw. Klassen nicht gefunden, so wird eine Exception (Fehlermeldung) erzeugt und ausgegeben: Î z.B. Library während Kompilierungszeit nicht gefunden: D:\Work\HFU\Lektion01\Übungen\CS2XML2HTML>javac Csv2xmlDOM.java Csv2xmlDOM.java:5: package org.apache.xerces.dom does not exist import org.apache.xerces.dom.*; ^ Î z.B. Library bzw. Klasse während der Ausführung nicht gefunden: D:\Work\HFU\Lektion01\Übungen\CS2XML2HTML>java Csv2xmlDOM Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xerces/dom/DocumentImpl Die Applikation generiert von einer CSV Datei welche vom Excel exportiert worden ist als erstes eine XML Datei „ndsJAVANote02H_dom.xml“. Diese kann dann wiederum mit einer entsprechenden Ausführung der zweiten Klasse „„Xml2HTML_xsl“ in eine HTML Datei „ndsJAVANote02H.html“ überführt werden, welche wir in einem Browser begutachten können. zuletzt überarbeitet:22.01.09 Seite:2/3 Höhere Fachschule Uster Seite Programmierung Java Lösungen Übung Einführung JDK 3 Übungen Pascal Joos 1.2.2 Ausgabe Hello World Den Code den Sie eingeben müssen ist in der Aufgabenstellung abgebildet. Wenn was schief geht dann liegt es an: • • • • Schreibfehlern innerhalb des Quell Codes. Bei der Eingabeshell nicht im gleichen Verzeichnis wie die Datei. Tippfehler beim Aufruf der Compilierung / Ausführung Die Classpath Variable ist falsch oder noch nicht gesetzt! Mit der Eingabe Von „Set“ kann in der MSDOS Eingabeaufforderung der Wert der Variablen überprüft werden. Ist das Programm unter dem Namen „HelloWorld.java“ gespeichert, kann es compiliert werden. Die Datei sollte so heißen, wie ihre Klasse.Dies ist jedoch nicht zwingend. Die Beachtung der Groß und Kleinschreibung des Dateinamens ist dabei wichtig. Eine andere Endung wie etwa ›txt‹ oder ›jav‹ ist nicht erlaubt und mündet in einer Fehlermeldung. Der Compiler versteht nur „.java Files C:\utemp>javac HelloWorld.txt HelloWorld.txt is an invalid option or argument. Usage: javac <options> <source files> Ist die Datei richtig benannt, so lässt sich der Compiler aufrufen. > javac HelloWorld.java Der Compiler legt, vorausgesetzt das Programm war fehlerfrei, die Datei „HelloWorld.class“ an. Der Name dieses Files wird anhand des Klassenamens und nicht anhand des Dateinamens vergeben. Diese Datei enthält nun den Bytecode. Mit dem Interpreter kommt das Programm zur Ausführung: >java HelloWorld Als Parameter für den Interpreter wird der Name der Klasse übergeben, die eine main()-Funktion enthält und somit als ausführbar gilt. Der Parametername ist daher auch nicht mit der Endung ›class‹ zu versehen, denn es gibt keine Klasse mit dem Namen „HelloWorld.class“. Nur ein File mit diesem Namen, der die entsprechende Klasse enthält. Der Interpreter geht beim oben gezeigten Aufruf dem Klassenpfad nach und sucht in jeden Eintrag des Klassenpfades nach der Datei <Klassenname>.class. Daher würde er bei der Übergabe von „HelloWorld.class“ nach „HelloWorld.class.class suchen“. Scheitert die Ausführung des Programms an dem Problem, dass die Klasse nicht verfügbar ist: >java HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld So muss möglicherweise in die Umgebungsvariable CLASSPATH der Punkt (das aktuelle Verzeichnis) mit aufgenommen werden bzw. auch ins Verzeichnis mit der Datei gewechselt werden. zuletzt überarbeitet:22.01.09 Seite:3/3 Höhere Fachschule Uster