1
von
Laura Lemay
Hallo und willkommen bei Java 1.1 in 21 Tagen! Ab heute werden Sie für die nächsten paar Wochen alles über die Java-Sprache lernen. Sie werden lernen Programme zu erstellen, die in einem Browser ausgeführt werden (Applets) und solche, die eigenständig ablaufen (Applikationen).
Das ist das globale Ziel für die nächsten drei Wochen. Für heute haben wir uns bescheidenere Ziele gesteckt. Sie lernen in dieser Lektion folgendes:
Angesichts der enormen Presse, die Java erhält, und die Aufregung, die die Sprache erzeugt, kann man leicht den Eindruck gewinnen, daß Java da ist, um die Welt zu erlösen oder zumindest alle Probleme des Internet zu beseitigen. Das ist nicht so. Die Hysterie rund um Java geht weit über die Fähigkeiten der Sprache hinaus. Obwohl Java neu und interessant ist, haben wir es im Grunde mit einer weiteren Programmiersprache zu tun, mit der Sie Programme schreiben können, die im Internet laufen. In dieser Hinsicht ist Java mehr an die gängigen Programmiersprachen wie C, C++, Visual Basic oder Pascal angelehnt als an eine Seitenbeschreibungssprache wie HTML oder eine einfache Skriptsprache wie JavaScript.
Genauer gesagt, ist Java eine objektorientierte Programmiersprache, die von Sun Microsystems, einem für seine High-End Unix-Workstations bestens bekannten Unternehmen, entwickelt wurde. Die nach C++ modellierte Java-Sprache wurde mit dem Ziel entwickelt, kompakt, einfach und auf alle Plattformen und Betriebssysteme portierbar zu sein, sowohl was den Quelltext als auch die Binärebene anbelangt. Das bedeutet, daß Java-Programme (Applets und Anwendungen) auf jeder beliebigen Maschine laufen können, auf der die virtuelle Java-Maschine installiert ist (darüber später mehr).
Java wird meist in einem Atemzug mit dem World Wide Web erwähnt, und Browser wie der Netscape Navigator und der Microsoft Internet Explorer gelten als »Java-fähig«. Das bedeutet, daß der fragliche Browser Java-Programme, die sogenannten Applets, auf das System des Benutzers laden und dort ausführen kann. Applets erscheinen auf einer Web Page mehr oder weniger wie Grafiken, sind im Gegensatz zu Grafiken aber dynamisch und interaktiv. Applets können genutzt werden, um Animationen, Abbildungen, Spiele, Formulare, die sofort auf die Eingabe des Benutzers reagieren, und andere interaktive Effekte auf einer Web Page zusammen mit Text und Grafiken zu erstellen. Abbildung 1.1 zeigt ein Applet, das in Netscape 3.0 ausgeführt wird. (Dieses Applet von http://prominence.com/java/poetry/ ist eine elektronische Version der Kühlschrankmagneten, die man herumschieben kann, um Gedichte oder Nachrichten zu erstellen.)
Um ein Applet zu erstellen, schreiben Sie es in Java, kompilieren es mit einem Java-Compiler und beziehen sich auf dieses Applet in Ihren HTML-Web-Pages. Sie stellen die sich daraus ergebenden HTML- und Java-Dateien auf die gleiche Weise in eine Web Site wie gewöhnliche HTML- und Bilddateien. Benutzt jemand einen Java-fähigen Browser, um Ihre Seiten mit dem eingebetteten Applet anzuzeigen, lädt dieser Browser das Applet auf das lokale System und führt es aus. Der Benutzer kann Ihr Applet betrachten und mit ihm in all seiner Herrlichkeit interagieren. Benutzer, die andere Browser verwenden, sehen statt dessen Text, eine statische Grafik oder gar nichts! Sie lernen bald mehr darüber, wie Applets, Browser und das World Wide Web zusammen funktionieren.
Wichtig ist, zu verstehen, daß Sie mit Java viel mehr anfangen können als Applets zu erstellen, wenngleich Applets die populärste Verwendung von Java sind. Java wurde als ausgereifte Programmiersprache entwickelt, mit der Sie alle möglichen Aufgaben ausführen und die gleiche Art von Problemen lösen können wie mit anderen Programmiersprachen, z.B. C oder C++.
Abbildung 1.1:
|
Die Java-Sprache wurde von Sun Microsystems 1991 im Rahmen eines Forschungsprojekts zur Entwicklung von Software für Verbraucherelektronikgeräte wie Fernseher, Videorecorder, Toaster und andere Haushaltsgeräte entwickelt. Damals wurde mit Java das Ziel verfolgt, eine Sprache zu entwickeln, die kompakt, schnell, effizient und leicht auf vielfältige Hardware-Systeme portierbar ist.
Das gleiche Ziel machte aus Java eine ideale Sprache zur Verbreitung ausführbarer Programme über das World Wide Web und auch eine universelle Programmiersprache zur Entwicklung von Programmen, die bedienungsfreundlich und auf verschiedene Plattformen portierbar sind.
Bei Sun wurde die Java-Sprache (unter dem Namen »Oak«) in verschiedenen Projekten benutzt, erhielt aber bis zur Paarung mit HotJava nicht viel Aufmerksamkeit im kommerziellen Bereich. HotJava ist ein experimenteller WWW-Browser, der 1994 innerhalb von Monaten als Vehikel zum Herunterladen und Ausführen von Applets und als Musterbeispiel der komplexen Anwendungen, die in Java geschrieben werden können, entwickelt. HotJava stieß zwar auf positiven Resonanz seitens der Web-Gemeinde, jedoch hob Java eigentlich erst ab, als die Fähigkeiten von HotJava, Applets abzuspielen, in den Netscape Navigator integriert wurden. Seither sorgt Java für Aufregung innerhalb und außerhalb des World Wide Web. Java hat derart viel Aufsehen erregt, daß man bei Sun unter der Bezeichnung »JavaSoft« einen eigenen Geschäftsbereich gründete.
Die Versionen von Java oder Java API, wie es gewöhnlich genannt wird, entsprechen den Versionen des Java Developer's Kit (JDK) von Sun. Als ich dieses Buch schrieb, gab es zwei nennenswerte Versionen von JDK: das ältere JDK 1.02, das häufig benutzt und von den meisten Browsern (Netscape Navigator 3.0 und Microsoft Internet Explorer 3.0) unterstützt wird, und Entwicklungswerkzeuge wie Café von Symantec und Visual J++ von Microsoft. Das kürzlich freigegebene Java 1.1 weist viele neue Merkmale auf. Da die Version aber immer noch recht neu ist, wird sie nicht so umfangreich unterstützt wie die Version 1.02. In diesem Buch werden Java 1.02 und Java 1.1 beschrieben. Soweit sich die Versionen unterscheiden, finden Sie entsprechende Hinweise. In Java 1.02 geschriebene Programme funktionieren problemlos auch in Java 1.1, aber der umgekehrte Fall trifft nicht zu. Das heißt, daß die in Version 1.1 geschriebenen Programme nicht in einer Umgebung der Version 1.02 laufen.
Um in Java programmieren zu können, brauchen Sie eine Java-Entwicklungsumgebung für Ihre Plattform. Suns JDK eignet sich für diesen Zweck sehr gut, und enthält auch Werkzeuge zum Kompilieren und Testen von Java-Applets und -Anwendungen. Darüber hinaus gibt es verschiedene ausgezeichnete Java-Entwicklungsumgebungen, darunter Java Workshop von Sun, Café von Symantec, Visual J++ von Microsoft (trotz des Namens hndelt es sich um eine Java-Entwicklungsumgebung) und Roaster von Natural Intelligence. Natürlich kommen laufend neue Entwicklungswerkzeuge hinzu. Falls Sie Code in Java 1.1 schreiben, stellen Sie sicher, daß Ihre Entwicklungsumgebung das JDK 1.1 unterstützt. Bei Drucklegung war Suns JDK die einzige Entwicklungsumgebung für Java 1.1. Sind Sie an den Merkmalen von Version 1.1 weniger interessiert, können Sie in nach Belieben in einer 1.02- oder 1.1-Umgebung arbeiten.
Um Java-Applets ansehen und ausführen zu können, brauchen Sie einen Java-fähigen Browser oder ein ähnliches Werkzeug. Wie bereits erwähnt, werden Java-Applets vom Netscape Navigator (ab Version 2.0) und vom Internet Explorer (ab Version 3.0) unterstützt. Die Java-Unterstützung unterscheidet sich aber sehr stark je nach Browser, deshalb sollten Sie diesbezüglich die Dokumentation Ihres Browser durchsehen. Doch auch wenn Sie keinen Java-fähigen Browser haben, sind viele Entwicklungswerkzeuge verfügbar, um Applets auszuführen. Das JDK enthält z.B. einen geeigneten Viewer. Er heißt »Appletviewer«. Wie bei den Entwicklungsumgebungen sollten Sie auch bei Viewern auf Unterschiede zwischen den Java-Versionen 1.02 und 1.1 achten. Als ich das Buch schrieb, hat kein Browser Java 1.1 unterstützt. Die einzige Möglichkeit, Applets zu testen, die mit dem JDK 1.1 geschrieben wurden, war der Sun Applet-Viewer. Der Netscape Navigator 3.0 und der Internet Explorer unterstützen KEINE Applets, die mit Version 1.1 geschrieben wurden.
Was hat die Zukunft für Java auf Lager? Java 1.1 bietet eine Reihe bedeutender Revisionen, um Java von einer interessanten witzigen Sprache zum Schreiben von Applets zu einer ernst zu nehmenden Programmiersprache zu machen, mit der ausgereifte »richtige« Anwendungen geschrieben werden können. Im weiteren Verlauf dieses Buches erfahren Sie eine Menge über diese Änderungen, und warum sie für die Java-Entwicklung so nützlich sind. Weitere Revisionen von Java werden sicherlich weitere leistungsstarke Merkmale für verschiedene Arten von Java-Anwendungen enthalten, z.B. Java-Klassen und APIs für Multimedia, für anspruchsvolle Grafiken und Layouts, für ausgeklügelte Sicherheitsfunktionen und für mehr Flexibilität in der Entwicklung von grafischen Benutzeroberflächen in Java.
Gleichzeitig weitet sich Java von einer spezifischen Programmiersprache in viele andere Bereiche aus. Sun entwickelt Java-Mikroprozessoren, um schnellere Umgebungen für Java-Anwendungen bereitzustellen. Der Network Computer von Sun läuft unter einem Java-Betriebssystem, das für sehr kleine begrenzte Systeme ausgelegt wurde. Suns Vision von der Zukunft ist ein Computer, der vollständig auf Java basiert.
Der derzeit vorrangige Grund, Java zu lernen, und wahrscheinlich derjenige, warum Sie dieses Buch gekauft haben, ist, daß Applets in Java geschrieben werden. Doch auch wenn das nicht der Fall ist, bietet Java im Vergleich zu anderen Programmiersprachen und -umgebungen viele Vorteile, durch die es sich für fast jede Programmieraufgabe eignet. Einige dieser Vorteile werden in diesem Kapitel beschrieben.
Plattformunabhängigkeit ist die Fähigkeit eines Programms, mühelos von einem Rechnertyp auf einen anderen portiert werden zu können. Das ist einer der größten Vorteile, die Java gegenüber anderen Programmiersprachen zu bieten hat, insbesondere für Umgebungen, in denen auf verschiedenen Plattformen gearbeitet wird. Schreiben Sie Software für das World Wide Web, ist diese Eigenschaft von Java möglicherweise für den Erfolg Ihrer Programme maßgebend. Java ist sowohl auf der Quell- als auch der Binärebene plattformunabhängig.
Auf der Quellebene haben Javas primitive Datentypen konsistente Größen für alle Entwicklungsplattformen. Die in Java enthaltene umfangreiche Klassenbibliothek vereinfacht das Schreiben von Code, der von einer Plattform auf eine andere verlagert werden kann, ohne daß er für die jeweilige Plattform umgeschrieben werden muß. Wenn Sie ein Programm in Java schreiben, brauchen Sie sich nicht an die Merkmale eines bestimmten Betriebssystems zu halten, um grundlegende Aufgaben auszuführen. Plattformunabhängigkeit auf der Quellebene bedeutet, daß Sie Java-Quelldateien von einem System auf ein anderes überführen, auf diesem kompilieren und dort sauber ausführen können.
Die Plattformunabhängigkeit hört aber nicht bei der Quellebene auf. Auch Java-Binärdateien sind plattformunabhängig und laufen auf verschiedenen Plattformen (sofern eine virtuelle Java-Maschine vorhanden ist) ohne Notwendigkeit, den Quellcode neu kompilieren zu müssen.
Beim Kompilieren eines in C oder einer anderen gängigen Sprache geschriebenen Programms übersetzt der Compiler normalerweise das Programm in Maschinencode oder Prozessoranweisungen. Diese Anweisungen oder Instruktionen passen spezifisch zum Prozessor eines Rechners. Das bedeutet, wenn Sie beispielsweise Ihren Code auf einem Intel-System kompilieren, läuft das sich daraus ergebende Programm nur auf Intel-Systemen. Möchten Sie das gleiche Programm für ein anderes System benutzen, müssen Sie sich einen Compiler für das betreffende System besorgen und den Quellcode neu kompilieren. Abbildung 1.2 zeigt das Ergebnis dieses Systems: mehrere ausführbare Programme für mehrere Systeme.
Abbildung 1.2:
|
Die Sachlage ist anders, wenn Code in Java geschrieben wird. Die Java-Entwicklungsumgebung umfaßt zwei Teile: einen Java-Compiler und einen Java-Interpreter. Der Java-Compiler erzeugt Ihr Java-Programm nicht in Form von Maschinencode, sondern als sog. Bytecode. Bytecodes sind Instruktionen, die aussehen wie Maschinencode, die aber nicht spezifisch an einen bestimmten Prozessor gebunden sind.
Ein Java-Programm wird in einem sogenannten »Bytecode-Interpreter« ausgeführt, der seinerseits Ihr Java-Programm ausführt (siehe Abbildung 1.3). Der Bytecode-Interpreter von Java wird auch »virtuelle Java-Maschine« oder »Java-Laufzeit-Interpreter« genannt.
Abbildung 1.3:
|
Wie kommt man nun an den Bytecode-Interpreter? Für Applets ist der Bytecode-Interpreter in jeden Java-fähigen Browser integriert, deshalb brauchen Sie sich in diesem Fall keine Gedanken zu machen. Java-Applets laufen automatisch ab. Für universelle Java-Anwendungen müssen Sie den Interpreter auf dem System installieren, auf dem das betreffende Java-Programm ausgeführt werden soll. Derzeit erhalten Sie den Java-Interpreter als Teil der Entwicklungsumgebung. Kaufen Sie ein Java-Programm, ist er im Paket enthalten. Künftig dürfte der Bytecode-Interpreter für Java höchstwahrscheinlich in jedem neuen Betriebssystem integriert sein. Konkret heißt das, daß Sie Java kostenlos erhalten, wenn Sie beispielsweise einen neuen Windows-Rechner kaufen.
Wozu die Mühe, diese zusätzliche Schicht des Bytecode-Interpreters hinzuzufügen? Die Verfügbarkeit Ihrer Java-Programme in Form von Bytecodes bedeutet, daß sie nicht für ein spezifisches System ausgelegt sind, sondern auf jeder Plattform unter jedem Betriebssystem laufen, so lange der Java-Interpreter vorhanden ist. Diese Möglichkeit der Verfügbarkeit einer einzelnen Binärdatei, die auf beliebigen Plattformen ausführbar ist, spielt im Zusammenhang mit Applets die entscheidende Rolle, weil das World Wide Web selbst plattformunabhängig ist. Ebenso wie HTML-Dateien auf jeder Plattform gelesen werden können, lassen sich Applets auf jeder Java-fähigen Browser-Plattform ausführen.
Der Nachteil der Verwendung von Bytecodes drückt sich in der Ausführungsgeschwindigkeit aus. Da systemspezifische Programme auf der Hardware eingesetzt werden, für die sie kompiliert wurden, laufen sie wesentlich schneller als Java-Bytecode, der erst vom Interpreter verarbeitet werden muß. Andererseits ist die Geschwindigkeit bei vielen Java-Programmen oftmals nicht der entscheidende Faktor. Wenn Sie Programme schreiben, die schneller laufen sollen als der Java-Interpreter bieten kann, stehen Ihnen mehrere Lösungen zur Verfügung, darunter die Verknüpfung des nativen Codes mit Ihrem Java-Programm oder die Verwendung von Werkzeugen, um Ihren Java-Bytecode in nativen Code zu konvertieren. Beachten Sie, daß Sie bei beiden Lösungen die vom Java-Bytecode von Haus aus bereitgestellte Portabilität einbüßen. Sie lernen am 20. Tag mehr über diese Mechanismen.
Für einige ist die objektorientierte Programmierung (OOP) lediglich eine Technik, um Programme zu organisieren, was mit jeder beliebigen Sprache erreicht werden kann. Das Arbeiten mit einer echten objektorientierten Sprache und Programmierumgebung ermöglicht Ihnen aber, die Vorteile der objektorientierten Methode und ihre Fähigkeiten der Entwicklung flexibler modularer Programme sowie die Wiederverwendung des Codes voll auszuschöpfen.
Javas objektorientierte Konzepte haben viel von C++, der Sprache, auf der Java basiert, geerbt. Darüber hinaus hat es sich aber viele Konzepte aus anderen objektorientierten Sprachen entlehnt. Wie die meisten objektorientierten Programmiersprachen umfaßt Java eine umfangreiche Klassenbibliothek, die grundlegende Datentypen, Systemein- und -ausgabefähigkeiten und andere Utilities bietet. Diese grundlegenden Bibliotheken sind Teil der Java-Standardumgebung, die auch einfache Bibliotheken, Vernetzungsfunktionen, übliche Internet-Protokolle und Funktionen für Benutzeroberflächen beinhalten. Da diese Klassenbibliotheken in Java geschrieben wurden, sind sie genau wie alle Java-Anwendungen auf alle Plattformen portierbar.
Über Javas Objektorientierung lernen Sie morgen mehr.
Abgesehen von der Portierbarkeit und Objektorientierung wurden mit dem anfänglichen Java-Design weitere Ziele verfolgt: Die Sprache sollte kompakt, einfach und damit leicht zu schreiben, zu kompilieren, zu debuggen und vor allem leichter zu lernen sein. Eine »kompakte« Sprache bedeutet, daß sie robuster ist, weil das potentielle Risiko, beim Programmieren schwer abzugrenzende Fehler zu machen, geringer ist. Trotz der Kompaktheit und des einfachen Designs weist Java eine Menge Leistung und Flexibilität auf.
Java wurde nach C und C++ modelliert. Ein Großteil der Syntax und der objektorientierten Struktur wurde von C++ entlehnt. Sind Sie mit C++ vertraut, fällt Ihnen das Erlernen von Java besonders leicht, weil Sie den gesamten Grundstock schon mitbringen. Möglicherweise überfliegen Sie die Lektionen der ersten Woche im Nu.
Andererseits sieht Java zwar ähnlich aus wie C und C++, jedoch wurden die komplexeren Teile dieser Sprachen absichtlich aus Java ausgeschlossen. Dadurch ist die Sprache einfacher, ohne daß Leistung geopfert wurde. In Java gibt es z.B. keine Pointer (Zeiger) und auch keine Pointer-Arithmetik. Strings (Zeichenketten) und Arrays sind in Java echte Objekte. Die Speicherverwaltung erfolgt automatisch. Für einen erfahrenen Programmierer sind das Unterlassungen, an die er sich nur schwer gewöhnen kann. Für Anfänger oder Programmierer, die mit anderen Sprachen arbeiten, vereinfacht sich dadurch der Java-Lernaufwand.
Nun verringert das Java-Design zwar den Lernaufwand gegenüber anderen Programmiersprachen, jedoch haben wir es immerhin mit einer Programmiersprache zu tun, auf jeden Fall komplizierter ist als etwa das Arbeiten in HTML. Falls Sie überhaupt keine Programmiererfahrungen haben, finden Sie Java möglicherweise schwierig. Lassen Sie sich nicht entmutigen! Programmieren ist eine nützliche Kenntnis, die anzueignen sich besonders in Zusammenhang mit dem World Wide Web und mit Computern im allgemeinen lohnt. Betrachten Sie es als Vorteil, daß Sie sich diese Kenntnisse mit einer so freundlichen Sprache wie Java aneignen.
Genug der Hintergrundinformationen! Wir verbringen den Rest des Tages mit dem Schreiben von zwei Java-Programmen: einer eigenständiger Java-Anwendung und eines Applets, das Sie im Applet-Viewer (Teil des JDK) oder einem Java-fähigen Browser anzeigen können. Diese Programme sind zwar extrem einfach, vermitteln Ihnen aber einen ersten Einblick darüber, wie ein Java-Programm aussieht, wie es kompiliert wird und wie es läuft.
Um Java-Programme schreiben zu können, brauchen Sie selbstverständlich eine Java-Entwicklungsumgebung. (Browser wie der Netscape Navigator erlauben zwar das Abspielen von Java-Applets, lassen Sie aber keine Applets schreiben. Deshalb brauchen Sie ein getrenntes Werkzeug.) Sie können gut Suns JDK dafür verwenden, das Sie von der JavaSoft Site (http://www.javasoft.com/) herunterladen können, aber auch auf der beigefügten Buch-CD finden. Trotz der Beliebtheit des JDK ist es nicht gerade die einfachste und freundlichste Entwicklungsumgebung. Sind Sie an Entwicklungswerkzeuge mit grafischen Benutzeroberflächen sowie einem integrierten Editor und Debugger gewöhnt, kommt Ihnen die antiquierte Befehlszeilenstruktur des JDK sicherlich primitiv vor. Zum Glück ist das JDK nicht das einzige Tool auf dem Markt.
Für die Java-Entwicklung gibt es eine Reihe sogenannter integrierter Entwicklungsumgebungen (Integrated Development Environment IDE) verschiedener Hersteller. Hier einige davon: Java Workshop für Solaris, Windows NT und Windows 95 von Sun (von http://www.sun.com/developer-products/java/ erhalten Sie mehr Informationen darüber); Café für Windows 95, Windows NT und den Macintosh von Symantec (http://cafe.symantec.com/); Visual J++ für Windows 95 und Windows NT von Microsoft (http://www.microsoft.com/visualj/); und Roaster von Natural Intelligence (http://www.natural.com/pages/products/roaster/index.html). Bei allen genannten Produkten handelt es sich um kommerzielle Programme. Möglicherweise ist das eine oder andere aber als limitierte Demoversion erhältlich.
Suns JDK 1.1 für Solaris und Windows ist auf der Buch-CD. Die auf der Buch-CD befindliche Version für den Macintosh ist 1.02 JDK (JDK 1.1 gibt es noch nicht für den Macintosh). Ferner befinden sich auf der Buch-CD alle Codebeispiele aus dem Buch eine große Hilfe, da Sie das alles nicht neu eintippen müssen. Um das JDK oder die Beispieldateien (oder beides) zu installieren, verfahren Sie wie unten für Ihre Plattform aufgeführt.
Suns JDK läuft unter Windows 95 und Windows NT, nicht aber unter Windows 3.x.
Zum Installieren des JDK oder der Beispieldateien unter Windows führen Sie das Setup-Programm auf der CD-ROM aus (durch einen Doppelklick auf das CD-Symbol erfolgt das automatisch). Der Vorgabe zufolge wird das Kit unter C:/JDK1.1 installiert. Sie können das Verzeichnis natürlich ändern. Sie erhalten dann Gelegenheit, das JDK, die Beispieldateien und verschiedene andere Dateien zu installieren. Wählen Sie die gewünschten Optionen.
Nachdem Sie das JDK installiert haben, finden Sie eine Datei namens classes.zip im Verzeichnis JDK\lib. Sie brauchen diese Datei nicht zu entpacken.
Suns JDK für den Macintosh läuft unter System 7 (MacOS) für 68 KB oder auf dem PowerMac.
Zum Installieren des JDK oder der Beispieldateien auf dem Macintosh dekomprimieren Sie die bin- oder hqx-Datei auf Ihrer Festplatte, dann doppelklicken Sie auf das Installationsprogramm. Der Vorgabe zufolge wird das Paket in einem Ordner namens Java installiert. Sie können natürlich einen anderen Ordner benennen. Sie erhalten dann Gelegenheit, das JDK, die Beispieldateien und verschiedene andere Dateien zu installieren. Wählen Sie die gewünschten Optionen.
Suns JDK für Solaris läuft unter Solaris 2.3, 2.4 und 2.5 sowie der x86-Version.
Auf der Buch-CD befindet sich das JDK entsprechend der Version im Verzeichnis JDK/1NTESOL/jdk1_1-beta4-solaris-x86.sh oder JDK/SPARCSOL/jdk1_1-solaris2-sparc.sh. Nach spezifischen Installationsnuancen für Ihre Version von Solaris sehen Sie sich auf der Web Page http://www.javasoft.com/products/jdk/1.1/installation-solaris2.html um.
Die Beispieldateien finden Sie unter source/source.tar auf der Buch-CD. Legen Sie ein Verzeichnis für die Dateien an (z.B. javasamples in Ihrem Stammverzeichnis), kopieren Sie die Datei source.tar in dieses Verzeichnis und entpacken Sie die Datei mit dem tar-Befehl wie folgt:
mkdir /javasamples
cp /cdrom/source/source.tar
Haben Sie das JDK über das Setup-Programm von der Buch-CD installiert, stehen die Chancen gut, daß es bereits richtig konfiguriert ist. Da die häufigsten Probleme mit Java auf Konfigurationsfehler zurückzuführen sind, empfehle ich eine Überprüfung Ihrer Konfiguration. Haben Sie das JDK von einer anderen Quelle installiert, müssen Sie diesen Abschnitt auf jeden Fall lesen, um sicherzustellen, daß alles richtig eingerichtet wird.
Für das JDK müssen zwei wichtige Änderungen in der Datei autoexec.bat durchgeführt werden, damit es richtig funktioniert: Das Verzeichnis JDK1.1\bin muß sich im Ausführungspfad befinden, und die Variable CLASSPATH muß gesetzt werden.
Bearbeiten Sie die Datei autoexec.bat in Ihrem bevorzugten Editor (z.B. Notepad). Suchen Sie nach einer Zeile, die etwa so aussieht:
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DOS; ...
Irgendwo in dieser Zeile sollte sich ein Eintrag für das JDK befinden. Haben Sie das JDK von der Buch-CD installiert, sieht dieser Eintrag etwa so aus (die Punkte stehen ersatzweise für irgendwelche anderen Einträge):
PATH C:\WINDOWS; ... C:\JDK1.1\BIN; ...
Falls Sie im Abschnitt PATH keinen Verweis auf JDK\BIN oder JAVA\BIN finden, müssen Sie einen einfügen. Setzen Sie den vollen Pfadnamen der JDK-Installation an das Ende dieser Zeile. Beginnen Sie den Eintrag mit C: und enden Sie ihn mit BIN, z.B. C:\JAVA\BIN oder C:\Java\JDK1.1\BIN.
Als zweite Arbeit müssen Sie in die Datei autoexec.bat die Variable CLASSPATH einfügen (sofern sie noch nicht vorhanden ist). Suchen Sie nach einer Zeile, die etwa so aussieht:
SET CLASSPATH=C:\TEACHY1\JDK1.1\lib\classes.zip;.;
Die Variable CLASSPATH enthält möglicherweise weitere Einträge für Netscape oder den Internet Explorer. Wir sind hier aber nur an einem Bezug auf die Datei classes.zip im JDK und auf das aktuelle Verzeichnis (.) interessiert. Enthält Ihre autoexec.bat keinen dieser Verweise, fügen Sie in die Datei eine Zeile mit beiden Einträgen ein (z.B. wie oben).
Speichern Sie die geänderte autoexec.bat und starten Sie Windows neu, damit die Änderungen wirksam werden.
Die Konfiguration des JDK für den Macintosh muß nach der Installation nicht geändert werden.
Um das JDK für Solaris zu konfigurieren, brauchen Sie nur das Verzeichnis java/bin oder jdk/bin in den Ausführungspfad einzufügen. Normalerweise genügt eine Zeile wie
set path= (/java/bin/ $path)
in der Datei .cshrc, .login oder .profile. Bei dieser Zeile wird davon ausgegangen, daß Sie das JDK (als Verzeichnis java) im Stammverzeichnis installiert haben. Haben Sie es in ein anderes Verzeichnis installiert, müssen Sie den Pfadnamen entsprechend ändern.
Achten Sie darauf, den Befehl source mit dem Namen der entsprechenden Datei zu benutzen, damit die Änderungen wirksam werden (oder melden Sie sich ab und erneut wieder an):
source /.login
Jetzt machen wir uns an die Arbeit. Wir beginnen mit dem Erstellen einer einfachen Java-Anwendung: dem klassischen Beispiel »Hello World«, mit dem fast alle Bücher über Programmiersprachen beginnen.
Java-Anwendungen unterscheiden sich von Java-Applets. Wie Sie bereits wissen, sind Applets Java-Programme, die über das World Wide Web heruntergeladen und in einem Web-Browser auf der Maschine des Benutzers ausgeführt werden. Um Applets ausführen zu können, muß der Benutzer einen Java-fähigen Browser haben.
Java-Anwendungen sind demgegenüber universelle, in der Java-Sprache geschriebene Programme. Zum Ausführen von Java-Anwendungen ist kein Browser nötig. Java kann sogar benutzt werden, um die meisten Anwendungen, die Sie normalerweise in einer herkömmlichen Sprache schreiben würden, zu entwickeln.
Ein Java-Programm kann ein Applet, eine Anwendung oder beides sein, je nach dem, wie Sie das Programm schreiben und welche Fähigkeiten es nutzt. Im Verlauf dieser ersten Woche schreiben Sie vorwiegend Anwendungen. Dann wenden Sie an, was Sie gelernt haben, um in Woche 2 Applets zu schreiben. Sie möchten sicher schon mit Applets anfangen, aber haben Sie noch etwas Geduld. Alles, was Sie inzwischen aus dem Schreiben einfacher Java-Anwendungen lernen, trifft auch auf Applets zu. Außerdem ist es immer ratsam, ein paar Hintergründe zu lernen, bevor man mit dem Eingemachten beginnt. In Woche 2 entwickeln Sie Applets en masse.
Wie bei allen Programmiersprachen werden Java-Quelldateien in einem simplen Texteditor oder in einem Editor, der Dateien in ASCII ohne Formatierungen abspeichert, geschrieben. Unter Unix eignen sich emacs, pico oder vi. Unter Windows können Sie Notepad oder DOSEdit benutzen (obwohl ich den Shareware-Editor TextPad bevorzuge). Auf dem Macintosh können Sie SimpleText (ist standardmäßig auf dem Mac vorhanden) oder das Shareware-Programm BBedit benutzen. Arbeiten Sie mit einer Entwicklungsumgebung wie Café oder Roaster, erhalten Sie mit diesen Produkten automatisch einen integrierten Editor.
Starten Sie den Editor Ihrer Wahl und geben Sie das in Listing 1.1 aufgeführte Java-Programm ein. Tippen Sie diesen Code genau wie aufgeführt in Ihrem Texteditor. Achten Sie sorgfältig auf Klammern (normale und geschweifte) und Anführungszeichen sowie Groß- und Kleinschreibung.
Listing 1.1: Meine erste Java-Anwendung
1: class HelloWorld {
2: public static void main (String args[]) {
3: System.out.println("Hello World!");
4: }
5: }
Wenn Sie mit der Eingabe des Programms fertig sind, speichern Sie die Datei unter dem Namen HelloWorld.java auf Ihrer Festplatte ab. Dieser Name ist wichtig. Java-Quelldateien müssen den gleichen Namen haben wie die Klasse, die sie definieren (unter Berücksichtigung von Groß- und Kleinschreibung), und sie müssen die Erweiterung java haben. Hier hat die Klassendefinition den Namen HelloWorld, deshalb muß der Name HelloWorld.java lauten. Wenn Sie Ihre Datei anders benennen (etwa helloworld.java oder Helloworld.java), wird sie nicht kompiliert. Überprüfen Sie nochmals, ob Sie die Datei HelloWorld.java genannt haben.
Im Grunde können Sie Ihre Java-Dateien in einem beliebigen Verzeichnis auf Ihrer Festplatte speichern. Ich ziehe ein zentrales Verzeichnis vor, in das ich alle Java-Dateien stelle. Die Dateien dieses Kapitels habe ich beispielsweise in einem Verzeichnis namens TYJtests (Kurzfassung für »Teach Yourself Java Tests«) abgelegt.
Nun sind wir bereit, die Datei zu kompilieren. Wenn Sie mit dem JDK arbeiten, gelten die auf den nächsten Seiten aufgeführten Anweisungen für Ihre Plattform. Arbeiten Sie mit einer grafischen Entwicklungsumgebung, finden Sie zweifellos einen Button für die Kompilieroption (im Zweifelsfall sehen Sie in der Dokumentation des Produkts nach).
Um die Java-Quelldatei zu kompilieren, benutzen Sie den im JDK enthaltenen Java-Compiler (ebenfalls auf Befehlszeilenbasis). Um den Compiler zu starten, müssen Sie auf die DOS-Ebene wechseln. Unter Windows 95 wählen Sie MS-DOS unter Programme im Startmenü.
In DOS wechseln Sie in das Verzeichnis, in dem Sie die Datei HelloWorld.java abgelegt haben. Meine befindet sich im Verzeichnis TYJtests, deshalb gebe ich folgenden Befehl ein, um dorthin zu wechseln:
CD C:\TYJtests
Sind Sie im richtigen Verzeichnis, führen Sie den Befehl javac (Kurzform für »Java-Compiler«) mit dem Dateinamen wie folgt aus. Beachten Sie, daß Sie auch hier die Groß- und Kleinschreibung beachten müssen:
javac HelloWorld.java
In Abbildung 1.4 sehen Sie meine Arbeit auf der DOS-Ebene. Vergleichen Sie das mit dem, was bei Ihnen am Bildschirm erscheint.
Abbildung 1.4:
|
Nachdem das Programm fehlerfrei kompiliert wurde, haben Sie eine Datei namens HelloWorld.class (zumindest heißt sie außerhalb von DOS so; in DOS erscheint HELLOW1.cla). Das ist Ihre Bytecode-Datei. Falls Sie Fehler erhalten, gehen Sie zur Quelldatei zurück und überprüfen Sie den Code anhand von Listing 1.1. Achten Sie auf Groß- und Kleinschreibung, auch beim Dateinamen.
Haben Sie die class-Datei vorliegen, können Sie die Datei mit dem Bytecode-Interpreter ausführen. Der Java-Interpreter heißt einfach java, und Sie führen ihn auf der DOS-Ebene aus wie javac. Starten Sie Ihr Programm Hello World in der Befehlszeile. Achten Sie wieder auf Groß- und Kleinschreibung (und beachten Sie, daß das Argument für das Java-Programm keine Erweiterung class hat):
java HelloWorld
Haben Sie Ihr Programm korrekt geschrieben und kompiliert, müßte jetzt auf Ihrem Bildschirm der Text Hello World! erscheinen (siehe Abbildung 1.5).
Abbildung 1.5:
|
Das JDK für den Macintosh umfaßt eine Anwendung namens »Java Compiler«. Um Ihre Java-Quelldatei zu kompilieren, ziehen Sie die Datei auf das Symbol für Java Compiler. Das Programm kompiliert Ihre Java-Datei und erzeugt die Datei HelloWorld.class im gleichen Ordner, in dem sich die ursprüngliche Quelldatei befindet, sofern kein Fehler passiert.
Falls Sie Fehler erhalten, gehen Sie zur Quelldatei zurück und überprüfen Sie den Code anhand von Listing 1.1. Achten Sie auf Groß- und Kleinschreibung, auch beim Dateinamen.
Wurde die Datei HelloWorld.class fehlerfrei erzeugt, können Sie darauf doppelklikken, um sie auszuführen. Die Anwendung »Java Runner«, die Teil des JDK für den Mac ist, wird gestartet und das Programm fragt Sie nach Befehlszeilenargumenten. Lassen Sie den Bildschirm leer und klicken Sie auf OK. Ein Fenster mit dem Titel stdout erscheint mit der Meldung Hello World! (siehe Abbildung 1.6).
Abbildung 1.6:
|
Das war's schon! Denken Sie beim Arbeiten daran, daß Sie die Anwendung Java Compiler benutzen, um java-Dateien in class-Dateien zu komprimieren, die Sie dann in Java Runner ausführen können.
Um unter Solaris die Java-Quelldatei zu kompilieren, benutzen Sie den im JDK enthaltenen Java-Compiler. Auf der Unix-Befehlszeile wechseln Sie mit dem Befehl cd in das Verzeichnis, in dem sich die Java-Quelldatei befindet. Meine habe ich im Verzeichnis TYJtests abgelegt, deshalb gebe ich folgenden Befehl ein, um dorthin zu wechseln:
CD /TYJtests
Sind Sie im richtigen Verzeichnis, benutzen Sie den Befehl javac mit dem Dateinamen wie folgt:
javac HelloWorld.java
Nachdem das Programm fehlerfrei kompiliert wurde, haben Sie eine Datei namens HelloWorld.class in dem Verzeichnis, in dem sich Ihre Quelldatei befindet. Das ist Ihre Bytecode-Datei. Konnte die Datei aufgrund eines Fehlers nicht kompiliert werden, gehen Sie zur Originalquelldatei zurück und überprüfen Sie den Code anhand von Listing 1.1. Achten Sie auf die Groß- und Kleinschreibung, auch beim Dateinamen.
Haben Sie die class-Datei vorliegen, können Sie die Datei mit dem Bytecode-Interpreter ausführen. Der Java-Interpreter heißt einfach java, und Sie führen ihn auf der Befehlszeile aus wie javac. Achten Sie wieder auf Groß- und Kleinschreibung (und beachten Sie, daß das Argument für das Java-Programm keine Erweiterung class hat):
java HelloWorld
Haben Sie Ihr Programm korrekt geschrieben und kompiliert, müßte jetzt auf Ihrem Bildschirm der Text Hello World! erscheinen. In Abbildung 1.7 sehen Sie eine Aufstellung aller Befehle, die ich eingegeben habe, um an diesen Punkt zu gelangen (der Teil mit [desire][1] ist mein Systemprompt).
Abbildung 1.7:
|
Die Entwicklung eines Applets unterscheidet sich von der einer einfachen Anwendung, weil Java-Applets in einer Web Page mit anderen Seitenelementen zusammen ausgeführt und angezeigt werden. Daher müssen spezielle Regeln über ihr Verhalten beachtet werden. Aufgrund dieser besonderen Regeln für Applets kann die Entwicklung eines Applets in vielen Fällen komplexer sein als die einer Anwendung.
Um beispielsweise ein einfaches HelloWorld-Applet zu schreiben, müssen Sie nicht nur den Text an sich erstellen, sondern Platz für den Text schaffen und bestimmte Formatierungen wie Schriftart und Grafikfunktionen anwenden, damit das Applet am Bildschirm aufgebaut wird.
In diesem Beispiel erstellen Sie ein einfaches HelloWorld-Applet, plazieren es auf einer Web Page und sehen sich das Ergebnis an. Wie bei der HelloWorld-Anwendung erstellen Sie zuerst die Quelldatei in einem einfachen Texteditor. Den Code für das Beispiel finden Sie in Listing 1.2.
Listing 1.2: Mein HelloWorld-Applet
1: import java.awt.Graphics;
2:
3: public class HelloWorldApplet extends java.applet.Applet {
4:
5: public void paint(Graphics g) {
6: g.drawString("Hello World!", 5, 25);
7: }
8:}
Wie bei der HelloWorld-Anwendung speichern Sie die Datei, wobei der Dateiname genau dem Namen der Klasse entspricht. In diesem Fall ist der Klassenname HelloWorldApplet, deshalb speichern Sie die Datei unter dem Namen HelloWorldApplet.java. Ich habe die Datei in ein Verzeichnis namens TYJch01 gestellt, Sie können sie aber in einem beliebigen Verzeichnis speichern.
Im nächsten Schritt wird die Applet-Datei kompiliert. Ungeachtet der Tatsache, daß es sich um ein Applet handelt, kompilieren Sie die Datei genau so wie die Java-Anwendung. Verfahren Sie nach den unten für die entsprechende Plattform beschriebenen Schritte.
Wechseln Sie auf der DOS-Ebene mit dem Befehl cd in das Verzeichnis, in dem sich Ihre Applet-Quelldatei befindet. Führen Sie den Befehl javac aus, um sie zu kompilieren (Groß- und Kleinschreibung beachten):
javac HelloWorldApplet.java
Ziehen Sie die Datei HelloWorldApplet.java auf das Symbol für Java Compiler.
Wechseln Sie in der Befehlszeile mit dem Befehl cd in das Verzeichnis, in dem sich Ihre Applet-Quelldatei befindet und führen Sie den javac-Befehl aus:
javac HelloWorldApplet.java
Haben Sie den Code korrekt geschrieben, sollten Sie jetzt eine Datei namens HelloWorldApplet.class in dem Verzeichnis haben, in dem sich die Quelldatei befindet. Das ist Ihre Applet-Datei. Um das Applet in einer Web Page ausführen zu können, müssen Sie im HTML-Code der betreffenden Page auf die Klassendatei Ihres Applets verweisen. Hierfür verwenden Sie das HTML-Tag <APPLET>. In Listing 1.3 wird eine einfacher HTML-Code aufgezeigt, den Sie benutzen können.
Listing 1.3: HTML-Code mit dem eingebundenen Applet
1: <HTML>
2: <HEAD>
3: <TITLE>Hello to Everyone!</TITLE>
4: </HEAD><BODY>
5: <P>My Java applet says: </P>
6: <APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25>
7: </APPLET>
8: </BODY>
9: </HTML>
Über das HTML-Tag <APPLET> lernen Sie später mehr. Vorläufig sind nur zwei Dinge wichtig:
Speichern Sie die HTML-Datei im gleichen Verzeichnis wie die Klassendatei unter einem beschreibenden Namen mit der Erweiterung html (z.B. HelloWorldApplet.-html).
Jetzt sind Sie bereit, die Ergebnisse Ihres Applets zu betrachten. Um das Applet sichten zu können, brauchen Sie folgendes:
Wenn Sie einen Java-fähigen Browser benutzen, um Ihre Applet-Dateien anzusehen, wählen Sie Datei/Öffnen, um in der HTML-Datei, die das Applet enthält, zu navigieren. Achten Sie darauf, daß Sie die HTML-Datei und nicht die Klassendatei öffnen. Noch brauchen Sie nichts auf einem Web-Server zu installieren. Alles läuft soweit nur auf Ihrem lokalen System. Beachten Sie, daß es möglicherweise eine Weile dauert, bis das Applet in der Web Page geladen wird. In Abbildung 1.8 sehen Sie das Applet im Netscape Navigator.
Abbildung 1.8:
|
Falls Ihr Web-Browser nicht Java-fähig ist (oder falls Sie Applets für Java 1.1 testen wollen), können Sie das Applet im Applet-Viewer ansehen. Der Applet-Viewer ist im JDK enthalten.
Um den Applet-Viewer unter Windows oder Solaris auszuführen, wechseln Sie mit dem Befehl cd in das Verzeichnis, in dem sich die HTML- und die Klassendatei befinden, dann geben Sie appletviewer mit dem Namen der gerade erstellen Datei ein:
appletviewer HelloWorldApplet.html
Der Applet-Viewer zeigt nur das Applet, nicht aber den HTML-Text darum herum an.
Falls Sie mit den Beispielen auf Schwierigkeiten stoßen, sehen Sie sich folgende Liste mit den am häufigsten vorkommenden Problemen an, um eine geeignete Lösung zu finden:
Diese Fehler treten auf, wenn Sie in Ihrem Ausführungspfad kein Verzeichnis für JDK bin haben oder wenn der Pfad zu diesem Verzeichnis falsch ist. Unter Windows prüfen Sie die Datei autoexec.bat. Unter Unix prüfen Sie die Systemdatei mit den Pfadbefehlen (cshrc, login, profile oder einer ähnlichen Datei).
javac: invalid argument
Prüfen Sie, ob der Name der Datei, den Sie mit dem Befehl javac eingeben, richtig ist. Insbesondere auf der DOS-Ebene müssen Sie den Windows-Dateinamen mit der Erweiterung java eingeben und nicht das abgeschnittene DOS-Gegenstück (z.B. HELLOW1.jav).
Warning: public class HelloWorldApplet must be defined in a file called HelloWorldApplet.java
Dieser Fehler passiert meist, wenn der Name der in der Java-Datei definierten Klasse (der Name nach dem Wort class) nicht mit dem Namen der Java-Quelldatei übereinstimmt. Beide Dateinamen müssen übereinstimmen. Achten Sie besonders auf Groß- und Kleinschreibung. Korrigieren Sie Fehler in einem dieser Dateinamen, dann verschwindet diese Fehlermeldung.
Das JDK macht nicht gerade effizienten Speichergebrauch. Wenn Sie solche Fehlermeldungen erhalten, sollten Sie zumindest die größeren Programme schließen, bevor Sie Ihre Java-Programme kompilieren oder ausführen. Möglicherweise müssen Sie Ihren RAM erweitern.
Lassen sich Ihre Java-Quelldateien aufgrund von Fehlern, die ich hier nicht aufführe, nicht kompilieren, überprüfen Sie nochmals den Code und achten Sie vor allen Dingen auf die richtige Schreibweise. Groß- und Kleinschreibung wird in Java berücksichtigt. Tritt ein Codefehler immer wieder auf, vergleichen Sie Ihren Code mit dem auf der Buch-CD befindlichen Beispiel.
Heute haben Sie eine Grundeinführung in die Java-Sprache sowie ihre Ziele und Merkmale erhalten. Java ist eine mit C oder C++ vergleichbare Programmiersprache, mit der Sie verschiedene Programme schreiben können. Die häufigsten Verwendungen für Java sind derzeit Applets für Java-fähige Web-Browser. Applets sind Java-Programme, die als Teil einer Web Page heruntergeladen und auf dem System des Benutzers ausgeführt werden. Applets können Animationen, Spiele, interaktive Programme und andere multimediale Effekte auf Web Pages erzeugen.
Javas Stärken liegen in seiner Portabilität, sowohl auf der Quell- als auch der Binärebene, in seinem objektorientierten Design und seiner Schlichtheit. Diese Merkmale ermöglichen Applets, machen aus Java aber auch eine ausgezeichnete Sprache zum Schreiben universeller Programme, die nicht unbedingt in einem Java-fähigen Browser ausgeführt werden müssen. Diese universellen Java-Programme nennt man nicht Applets, sondern Anwendungen.
Sie haben an diesem Tag mit einem Beispiel-Applet und einer Beispiel-Anwendung experimentiert und ein Gefühl für die Unterschiede der beiden erhalten. Ferner haben Sie gelernt, wie Java-Programme entwickelt, kompiliert und ausgeführt werden. Im Fall von Applets haben Sie außerdem gelernt, wie sie in Web Pages eingebunden werden. Sie haben den Grundstock erworben, von dem aus Sie komplexere Anwendungen und Applets schreiben können.
F Ich kenne mich zwar gut mit HTML, aber weniger mit Programmierung aus. Kann ich trotzdem Java-Programme schreiben?
A Ganz ohne Programmiererfahrung fällt es Ihnen sicherlich schwerer, in Java zu programmieren. Andererseits ist Java eine ausgezeichnete Sprache, um in die Programmierung einzusteigen. Wenn Sie ausreichend Geduld mitbringen, um die Beispiele und Übungen in diesem Buch durchzuarbeiten, dürften Sie das Lernziel genau so erreichen wie jemand mit mehr Erfahrung.
F Welche Beziehung besteht zwischen JavaScript und Java?
A Die ersten vier Buchstaben sind gleich, das sind aber auch schon alle Gemeinsamkeiten. Ein häufiges Fehlverständnis in der Web-Welt ist, daß Java und JavaScript viel gemeinsam haben, was nicht zutrifft. Java ist eine Programmiersprache, die Sie mit diesem Buch erlernen. Sie wird benutzt, um Applets zu schreiben. JavaScript ist eine von Netscape erfundene Skriptsprache, die ähnlich aussieht wie Java. Mit dieser Sprache können Sie verschiedene Dinge in Web Pages bewirken. Beide sind voneinander unabhängige Sprachen, die völlig anderen Zwecken dienen.
F Die Unterscheidung zwischen Java 1.02 und Java 1.1 bringt mich durcheinander. Dieses Buch soll ja angeblich auf Java 1.1 basieren, aber aus dem, was Sie schreiben, verstehe ich, daß 1.02 beliebter ist und daß 1.1 von nur wenigen Browsern unterstützt wird. Welche Version soll man nun benutzen?
A Java 1.1 ist brandneu, deshalb dauert der Übergang von der bisherigen Version eine Weile, wie bei allen Produkten. Mit der Zeit wird sich 1.1 stärker verbreiten und auch mehr unterstützt werden. Allgemein gilt, daß ein für 1.02 API geschriebener Code überall kompiliert und ausgeführt wird, auch in der Version 1.1 des JDK. Wenn Sie aber Merkmale von 1.1 benutzen, schränken Sie Ihren Code auf diese neue Version ein. Je nach dem, was Sie mit Ihren Java-Entwicklungen vorhaben, empfiehlt es sich, die Verwendung von 1.1-Merkmalen vorläufig zurückzustellen, insbesondere für Applets. Legen Sie alle auf die Version 1.02 aus, dann sichern Sie sich mehr Flexibilität. Sie brauchen sich darüber aber keine Sorgen zu machen. Die meisten Java-Grundlagen sind in beiden Versionen gleich. Nur wenn man tiefer in das JDK eintaucht, stellt man Unterschiede fest. Ich verweise in den weiteren Lektionen speziell auf 1.1-Merkmale, wenn sie zur Sprache kommen.
F Laut der heutigen Lektion werden Java-Applets in einem Java-fähigen Browser heruntergeladen und auf dem System des Benutzers ausgeführt. Ist das nicht ein riesiges Sicherheitsloch? Was hält jemanden davon ab, ein Applet zu schreiben, das die Sicherheit meines Systems in Frage stellt oder gar auf meinem System Schäden anrichtet?
A Das Java-Team von Sun hat sich umfassend mit dem Thema Sicherheit von Applets in Java-fähigen Browsern befaßt und verschiedene Kontrollen eingeflochten, damit solche bösen Dinge nicht passieren können, z.B.:
Java-Applets können nicht auf die Platte eines lokalen Systems schreiben oder von ihr lesen.
Einige Sicherheitseinschränkungen können in manchen Browsern abgeschaltet sein. Gehen Sie aber davon aus, daß Applets den genannten Einschränkungen unterliegen.
Darüber hinaus prüfen der Java-Compiler und der -Interpreter den Java-Quellcode und den Java-Bytecode, um sicherzustellen, daß der Java-Programmierer keine hinterlistigen Tricks versucht.
Selbstverständlich können diese Kontrollen keine absolute Sicherheit gewährleisten. Sie reduzieren das Potential feindlicher Applets aber beträchtlich. Sie lernen mehr über Sicherheitsfragen am 8. und am 21. Tag.
F Sie haben in diesem Kapitel Solaris, Windows und den Macintosh erwähnt. Was ist mit anderen Betriebssystemen?
A Wenn Sie mit einer anderen Unix-Plattform als Solaris arbeiten, stehen die Chancen gut, daß das JDK auch für Ihr System erhältlich ist. Nachfolgend ein paar Beispiele der unterstützten Plattformen:
F Ich editiere meine Java-Dateien in Notepad unter Windows. Das Programm besteht stur darauf, alle meine Dateien mit der Erweiterung txt zu Textdateien zu machen, egal, wie ich sie benenne. Deshalb erhalte ich immer HelloWorld.java.txt bei dem Beispiel in dieser Lektion. Was kann ich tun, um das Problem zu beheben?
A Sie können die Dateien vor dem Kompilieren natürlich umbenennen. Sie müssen diese Mühe aber nicht auf sich nehmen. Das Problem liegt daran, daß Windows die Dateierweiterung java keinem Dateityp zuordnen kann (eventuell trifft das auch auf die Erweiterung htm für HTML-Dateien zu). Sie können das Problem ganz einfach beheben:
F Wo kann ich mehr über Java erfahren sowie Applets und Java-Anwendungen zum Experimentieren finden?
A Vor allen Dingen arbeiten Sie dieses Buch bis zum Ende durch. Darüber hinaus sehen Sie sich an folgenden Web Sites um:
(c) 1997 SAMS