B Anhang: Verwendung von Java unter Unix

Werbung
B
B.1
Anhang: Verwendung von Java unter Unix
Java-Compiler und Laufzeitumgebung
Die Programmierung mit Java geht folgendermaßen vor sich: Sie tippen Ihren
Programmtext mit einem Editor ein und speichern ihn irgendwo in Ihrem Homeverzeichnis. Der Programmtext kann von einem Computer aber nicht verstanden
und muß erst in eine vom Computer verstandene Form übersetzt (kompiliert)
werden.
Das Programm, welches Ihren Quelltext in eine vom Computer verstandene
Form übersetzt, nennt sich Compiler. Der Java-Compiler hat eine Besonderheit
— er erzeugt zwar für einen Computer verständlichen Code, aber der erzeugte
Code ist für keinen existierenden Computer verständlich.
Der Java-Compiler erzeugt Code — den sogenannten Java Bytecode, der von
einem sogenannten virtuellen Computer — der Java Virtual Machine
(JVM) — verstanden werden kann. Die Java Virtual Machine ähnelt real existierenden Prozessoren, berücksichtigt dabei aber die besonderen Eigenschaften
von Java.
Zum Java-System gehört nun ein Programm, welches diesen virtuellen Computer auf einem anderen Computer emuliert. Sie müssen also nach dem Kompilieren Ihres Quelltextes ein weiteres Programm starten, welches den Bytecode
entgegennimmt und interpretiert.
Natürlich kann Java damit nicht so schnell sein wie andere Programmiersprachen, die direkt Programmcode die jeweilige Zielplattform erzeugen, weil der
Prozessor niemals Java-Code direkt ausführt. Es gibt allerdings inzwischen Laufzeitsysteme, welche welche den Bytecode auf die jeweilige reale Hardware-Plattform
kompilieren und dort direkt ausführen können.
Die Tatsache, daß Java-Programme nicht auf eine spezielle Zielarchitektur kompiliert werden, bewirkt also daß Java-Programme nicht so schnell laufen wie in
anderen Sprachen entwickelte Software. Dennoch ist die Verwendung der virtuellen Maschine ein großer Vorteil und hat den Einsatz von Java im Internet erst
ermöglicht — hierdurch wird nämlich Systemunabhängigkeit erreicht.
In der Theorie läuft ein Java-Programm auf jeder Hardware und jedem Betriebssystem, für das eine virtuelle Maschine existiert. Man muß sich also nicht
mehr entscheiden, ob man ein Programm für Windows, Macintosh, Linux, HPUnix, Be-OS, OS/2 oder sonst ein Betriebssystem entwickelt. Sobald die virtuelle Java Maschine auf diesem Betriebssystem vorhanden ist, läuft hierauf jedes
Java-Programm identisch (wohlgemerkt: in der Theorie).
B.2
Kompilation
Wir wollen nun ein erstes Programm kompilieren. Bitte tippen Sie dazu folgendes Programm in einem Editor ein — beachten Sie dabei, Groß und Kleinschreibung exakt so wiederzugeben wie hier beschrieben.
public class HalloWelt
{
public static void main( String[] args )
{
161
System.out.println("Hallo, Welt");
}
}
Sie sollten immer darauf achten, daß der Name einer Programmdatei mit dem
Namen der enthaltenen Klasse beginnt und auf .java endet. Hier ist der Name
der Klasse “HalloWelt”. Speichern Sie daher den obigen Programmtext in der
Datei HalloWelt.java ab.
Um die Klasse zu kompilieren, gehen Sie bitte auf eine Unix-Shell und wechseln
in das Verzeichnis, in welchem Sie die Datei gespeichert haben. Hier geben Sie
dann ein
> javac HalloWelt.java
Wenn Sie beim Abtippen einen Fehler gemacht haben, meldet sich der Compiler
mit einer Fehlermeldung. Lesen Sie bitte die Fehlermeldung aufmerksam —
Sie sollten Fehlermeldungen immer aufmerksam lessen — und korrigieren ihn
bitte im Editor anschließend den in der Fehlermeldung beschriebenen Fehler.
Speichern Sie dann die Datei und kompilieren sie erneut.
Wenn Sie beim abtippen keine Fehler gemacht haben, sollte beim Kompilieren keine Ausgabe auf dem Bildschirm erzeugt worden sein aber die Datei
HalloWelt.class entstanden sein. Prüfen Sie dies bitte nach !
Die Datei HalloWelt.class enthält den Bytecode unserer Klasse. Sie können
das Programm nun laufen lassen, indem Sie die Java-Virtual-Machine mit unserem kompilierten Programm starten:
> java HalloWelt
Achten Sie bitte darauf, beim Aufruf von java nicht die Erweiterung .class
anzugeben. Dann wird ihre Klasse nämlich nicht gefunden.
Wenn Sie bis hierher alles nachgemacht haben, sollte der Text “Hallo, Welt” auf
dem Bildschirm ausgegeben werden.
B.3
Datentypen
Um dieses Kapitel zu verstehen, sollten Sie den Anhang ?? zum Aufbau eines
Computers gelesen haben.
Um die Attribute unserer Objekte zu definieren, haben wir bisher Wertebereiche
wie ganze Zahl, reelle Zahl, Zeichenkette oder Vektor verwendet. Wenn wir in
Java die Wertebereiche von Attributen beschreiben, kann man nicht einfach
einen umgangssprachlichen Ausdruck wie “ganze positivie Zahl” verwenden.
Der Java-Compiler muß schon etwas genauer wissen, was für Zahlen zu verwenden sind. Letztendlich muß ja jede Zahl in einem Java-Programm im Speicher
des Computers gespeichert werden. Es sollte einleuchtend sein, daß große Zahlen
mehr Platz zur Speicherung benötigen als kleine Zahlen — um eine 20 stellige
Zahl aufzuschreiben, benötigt man ja auch mehr Platz als für eine 2 stellige
Zahl. Es wäre nun sehr unangebracht, wenn der Java-Compiler jede ganzzahlige
Zahl
162
Herunterladen