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

Similar documents