Java: Definition |
---|
Wesentlich bei Java ist die Eigenschaft 'interpretierte, architekturneutrale' Sprache.
Ausgangspunkt von Programmen bei Java ist, wie bei anderen Programmiersprachen, eine ASCII-Datei mit dem Quellcode.
Bei C++-Programmen wird mit einem Compiler der Objektcode und aus den Objektdateien
des Projekts das ausführbare Programm erstellt.
Das Ergebnis ist plattformabhängig, d.h.
trotz gleichen Quellcodes ist ein auf Windows compiliertes Programm nur auf Windows lauffähig, ein auf Unix compiliertes nur auf Unix.
Programmentwicklung | |||
---|---|---|---|
C++: | Quellcode | -compilieren-> | Objektdatein, .obj |
Objektdateien | -linken-> | ausfuehrbares Programm, .exe | |
Programm | -ausfuehren- | direkt auf Betriebssystemebene | |
Java: | Quellcode | -compilieren-> | Java Byte Code, .class |
Java Byte Code | -ausfuehren- | nur innerhalb der Java Virtual Machine
des Betriebssystems |
Java hingegen erzeugt bei der Compilation 'Java Bytecode' der 'plattformunabhängig' ist. Diese Dateien sind nicht auf Betriebssystemebene ausführbar, sondern werden von der 'Java Virtual Machine' interpretiert. Diese Interpreter gibt es für alle gängigen Betriebssysteme, so bleibt die 'Plattformunabhängigkeit' gewahrt.
Durch dieses Vorgehen ist i.a.R. der Zugriff auf die Ressourcen des Computers stark eingeschränkt und der Verbrauch von Rechnerleistung für diesen Umweg ist bei der Ausführung beträchlich.
Unbestritten ist aber: Java ist gerade durch diese Eigenschaft für die Programmierung im Web prädestiniert.
Javaprogramme können in Web-Seiten integriert werden; beim Laden einer Seite lädt der Browser auch den Bytecode und kann ihn mittels der integrierten Interpreter ausführen.
Um Java-Programme zu entwickeln sind ausser gutem Willen das 'Java Runtime Enviroment', jre,
und das 'Java Development Kit', jdk, notwendig,
siehe die Verweise .
Auf Windows sind dann nur noch die Variablen PATH und CLASSPATH zu setzen.
Java und HTML |
---|
Soll diese Seite auf einem Web-Server bereitgestellt werden,
so wird die Datei 'Raute.java' compiliert und
der ByteCode 'Raute.class' in das gleiche Verzeichnis kopiert, wie die HTML-Seite.
Wird nun die HTML-Seite abgerufen, wird auch der ByteCode abgerufen und läft lokal beim Client in dessen Virtual-Java-Machine.
Wird ein Applet lokal entwickelt und mit einer lokalen HTML-Seite aufgerufen, wird der ByteCode zunächst im Verzeichnis der HTML-Seite gesucht; mittels Einstellungen der Variablen CLASSPATH, können aber auch andere Verzeichnisse durchsucht werden.
Wichtig ist die Beachtung der Java-Version.
Aktuell ist die Version 1.2, von den meisten Browsern wird die Version 1.1 unterstützt.
Da Umfang und Inhalt der Java-Versionen sich ändern, laufen Applets der neuesten Java-Versionen Gefahr von den Browsern nicht interpretiert zu werden.
Die Sprache Java |
---|
//2: Für ein Applet muß eine eigne Klasse von der Java-Klasse 'Applet' abgeleitet werden, hier 'Raute'.
Diese Klasse wird aufgerufen, wenn das Applet angezeigt wird.
Das Applet kann selber zeichnen, so könnte die Schnecke auch durch die paint-Funktion des Applets gezeichnet werden.
In dem Beispielprogramm wurde ein anderer Weg beschritten.
//3: Die init-Funktion des Applets wird zur Initialisierung ausgeführt; hier wird ein Objekt, 'MyRaute', angefügt.
Das Applet ist ein Container, der Componenten aufnimmt.
Der Container platziert die Componenten in einer bestimmten Art und Weise, die durch den Layout-Manager bestimmt wird, hier wird das GridLayout mit einer Spalte und einer Zeile verwendet.
Der Container informiert seine Componenten, das sie sich darstellen müssen, zB. beim Bildneuaufbau - die Darstellung selbst übernimmt
die einzelne Componente.
//4: Die Superklasse aller grafikschen Objekte ist Component, von dieser wird 'MyRaute' abgeleitet.
Wird nun noch die Darstellungsfunktion 'paint' überschrieben' stellt sich 'MyRaute' als Teil des Applets 'Raute' selber dar.
Für die Darstellung wird ein Objekt der Klasse 'Graphics' benutzt; diese ist mit dem Graphical-Context vergleichbar. Graphics beinhaltet alle Einstellungen zum Zeichnen und mit Graphics wird gezeichnet.
Weitere Beispiele:
Oberflächenprogrammierung mit Java |
---|
Java Swing |
---|
Verfügbarkeit: Zu Java jdk 1.1 kann 'Swing 1.1.1' zusätzlich installiert und geladen werden,
in Java 2 ist 'Swing' enthalten.
Die Browser interpretieren heute in aller Regel jdk 1.1, so macht es wenig Sinn in Applets Swing-Code zu verwenden.
Swing ist eine umfassende Bibliothek, die teilweise AWT-Klassen erweitert, zum Teil
aber auch neue Features wie Tables und Trees für Java bereitstellt.
Swing ist eine der neuesten Entwicklungen auf dem GUI-Gebiet, stellt umfassende Features zur Verfügung, ist allein deshalb schon interessant. Mit der Vielzahl der Möglichkeiten wird javaprogrammieren durch Swing nicht gerade vereinfacht.
Das EuroCalc-Beispiel mit Swing: hier .
Ein Beispiel für die Vielzahl der Möglichkeiten:
im Beispielcode kann der 'UIManager.setLookAndFeel' für Motif, Windows oder Metal aktiviert werden.
So kann das Programm, unabhängig von dem Betriebssystem, das Design/Verhalten von Motif, Windows oder Metal annehmen.
Verweise für alles .