Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

Java ist auch eine Insel von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 5 (Tiger-Release)
Buch: Java ist auch eine Insel
gp Kapitel 1 Schon wieder eine neue Sprache?
  gp 1.1 Der erste Kontakt
  gp 1.2 Historischer Hintergrund
  gp 1.3 Eigenschaften von Java
    gp 1.3.1 Bytecode und die virtuelle Maschine
    gp 1.3.2 Kein Präprozessor
    gp 1.3.3 Keine überladenen Operatoren
    gp 1.3.4 Zeiger und Referenzen
    gp 1.3.5 Bring den Müll raus, Garbage-Collector
    gp 1.3.6 Ausnahmenbehandlung
    gp 1.3.7 Objektorientierung in Java
    gp 1.3.8 Java-Security-Model
    gp 1.3.9 Wofür Java nicht geeignet ist
  gp 1.4 Java im Vergleich zu anderen Sprachen
    gp 1.4.1 Java und JavaScript
    gp 1.4.2 Normierungsversuche
    gp 1.4.3 Die Rolle von Java im Web
    gp 1.4.4 Vollwertige Applikationen statt Applets
  gp 1.5 Entwicklungs- und Laufzeitumgebungen
    gp 1.5.1 Aller Anfang mit dem Java SDK
    gp 1.5.2 Die Entwicklungsumgebung von Sun: Sun ONE Studio und NetBeans
    gp 1.5.3 IBM und Eclipse
    gp 1.5.4 JBuilder von Borland
    gp 1.5.5 Together
    gp 1.5.6 Ein Wort zu Microsoft, Java und zu J++
    gp 1.5.7 Direkt ausführbare Programme
  gp 1.6 Installationsanleitung für das Java 2
    gp 1.6.1 Das Java 2 SDK beziehen
    gp 1.6.2 Java SDK unter Windows installieren
    gp 1.6.3 Compiler und Interpreter nutzen
    gp 1.6.4 Installation der Java Laufzeitumgebung (1.4) unter Linux
  gp 1.7 Das erste Programm compilieren und testen
    gp 1.7.1 Häufige Compiler- und Interpreterprobleme
  gp 1.8 Eclipse
    gp 1.8.1 Eclipse starten
    gp 1.8.2 Das erste Projekt anlegen
    gp 1.8.3 Eine Klasse hinzufügen
    gp 1.8.4 Übersetzen und Ausführen
    gp 1.8.5 J2SDK statt JRE
    gp 1.8.6 Start eines Programmes ohne Speicheraufforderung
    gp 1.8.7 Java 5.0 in Eclipse
    gp 1.8.8 Projekt einfügen oder Workspace für die Aufgaben wechseln
    gp 1.8.9 Plugins für Eclipse


Galileo Computing

1.5 Entwicklungs- und Laufzeitumgebungedowntop

In der Gründerzeit von Java gab es nur den spartanischen Java-Compiler und die virtuelle Maschine von Sun. Die Situation hat sich geändert, und viele Hersteller stürmen mit Compilern, Laufzeitumgebungen und integrierten Entwicklungsumgebungen (IDE) auf den Markt.


Galileo Computing

1.5.1 Aller Anfang mit dem Java SDK  downtop

Alles begann mit dem Compiler und der JVM von Sun. Der Compiler unterstützt zwar den gesamten (hausgemachten) Standard, ist aber, da er selbst in Java programmiert ist, langsam. Somit bedarf es für eine Architektur nur eines Interpreters, und schon können mit dem Sun-Compiler Programme übersetzt werden. Sun liefert das Paket bestehend aus Compiler und Interpreter kostenlos aus. Das Produkt ist dabei in drei Bereiche unterteilt:

gp  Java 2 Standard Edition (J2SE). Die Standard Edition ist die normale Softwareumgebung und definiert das Java 2 Software Development Kit, kurz SDK. Geläufig ist immer noch die Bezeichnung JDK (Java Development Kit), die aber mittlerweile veraltet ist.
gp  Java 2 Enterprise Edition (J2EE). Die Enterprise Edition ist ein Aufsatz auf das J2SE und integriert zusätzliche Pakete wie Enterprise Java Beans, Servlets, JSP, Java-Mail-API, JTS.
gp  Micro Edition (J2ME). Die Micro Edition ist eine kleine Laufzeitumgebung für kleine PDAs oder Telefone. Für den PalmPilot liegt eine Referenzimplementierung vor. Die J2ME löst Personal Java und Embedded Java ab.

Das JDK 1.0.2 wurde 1996 veröffentlicht. Seit den ersten Versionen hat sich die Sprache Java nicht wesentlich verändert. In der Version 1.5 werden wir jedoch große Sprachänderungen erleben.


Galileo Computing

1.5.2 Die Entwicklungsumgebung von Sun: Sun ONE Studio und NetBeandowntop

In den Anfängen der Java-Bewegung brachte Sun mit der Software Java-Workshop eine eigene Entwicklungsumgebung auf den Markt. Die Produktivitätsmöglichkeiten waren jedoch gering. Das änderte sich, als Sun das kalifornische Softwarehaus Forte übernahm und damit wieder eine bedeutende Rolle bei den Java-Entwicklungsumgebungen einnahm. Sun interessierte sich besonders für Fortes Produkt SynerJ, das im Kern die IDE enthält. So wurde kurze Zeit später Forte for Java auf den Markt gebracht. Nun wurde das Produkt wiederum umgetauft und heißt Sun ONE Studio.

Sun ONE Studio (http://wwws.sun.com/software/sundev/jde/index.html) gibt es in den Ausführungen Enterprise Edition, Mobile Edition und Community Edition. Die Community Edition (sowie die Mobile Edition) stehen zum kostenlosen Download zur Verfügung, die Profiversion kostet 1.995 Dollar. Die Umgebung ist komplett in Java implementiert und modular aufgebaut, sodass Entwickler zusätzliche Bausteine implementieren können. Die Internet und Enterprise Edition unterstützen die J2EE und hilft bei der Erstellung von Datenbank- und JSP/Servlets, EJB, CORBA, RMI und JNDI.

Auf dem gleichen Kern wie Sun ONE Studio baut NetBeans auf. Beide verwenden den gleichen Kern, nur ist NetBeans (http://www.netbeans.org/) ein Open-Source-Produkt und Sun ONE nicht.


Galileo Computing

1.5.3 IBM und Eclipse  downtop

Den Programmierern von IBM, der größten Softwareschmiede der Welt, ist Java mittlerweile so ans Herz gewachsen, dass sie sich von Java nicht trennen können und nur noch damit programmieren wollen. Dabei ist viel Software entstanden, unter anderem der in C++ programmierte Compiler Jikes (http://www.ibm.com/research/jikes/), der im Quellcode unter der Open-Source-Lizenz vorliegt. Binärdateien liegen für Win32, Linux, AIX und OS/2 auf dem Server bereit. Für den allgemeinen Einsatz ist Jikes gut geeignet, da er sehr schnell ist, allerdings hat er einige Probleme mit Programmen, die vom Sun-Compiler akzeptiert werden. Dies führt zu spannenden Diskussionen, da IBM von sich behauptet, einen Compiler geschrieben zu haben, der aus Java-Quellcode, definiert in The Java Language Specification (Addison-Wesley 1996), Bytecode erstellt, wie unter The Java Virtual Machine Specification (Addison-Wesley 1996) spezifiziert. Leider ist in einigen Punkten die Sprachspezifikation unzureichend, sodass es zu unterschiedlichen Auslegungen kommt.

Die Entwicklungsumgebung Eclipse

Seit Ende 2001 arbeitet IBM an der Java-basierten Open-Source-Software (Common Public License) Eclipse (http://www.eclipse.org/). IBM löst damit die alte WebSphere-Reihe und die Umgebung Visual Age for Java ab. Eclipse macht es möglich, Tools verschiedenster Hersteller zu integrieren. Viele Anbieter haben ihre Produkte schon für Eclipse angepasst, und die Entwicklung läuft weltweit in einem raschen Tempo. Da Suns IDE NetBeans ebenfalls frei ist und mit anderen Fremdkomponenten bereichert werden kann, zog sich IBM den Groll von Sun zu. Sun wirft IBM vor, die Entwicklergemeinde zu spalten und noch eine unnötige Entwicklungsumgebung auf den Markt zu werfen, wo doch NetBeans schon so toll ist. Nun ja, die Entwickler werden entscheiden. Aktuelle Statistiken zeigen, dass an und mit Eclipse schon mehr Entwickler arbeiten, als mit NetBeans. Zudem scheint es so zu sein, dass sich auch Sun mit an Eclipse beteiligen könnte. Eine offene Aussage wird erwartet.

Eclipse hat gegenüber anderen Umgebungen den Vorteil, dass der Editor besonders Spracheinsteigern hilft, sich mit der Syntax anzufreunden. Dazu unterkringelt Eclipse ähnlich wie moderne Textverarbeitungssysteme fehlerhafte Stellen. Zusätzlich bietet die IDE die notwendigen Hilfen beim Entwickeln, wie etwa automatische Codevervollständigung. Eclipse setzt auf dem Java SDK auf und nutzt somit immer die neuesten Java-Versionen beziehungsweise beliebige andere Java-Umgebungen.

Eclipse ist ein Java-Produkt mit einer eigenen nativen grafischen Oberfläche, das erstaunlich flüssig seine Arbeit verrichtet – genügend Speicher vorausgesetzt (>256 MB). Die Arbeitszeiten sind auch deswegen so schnell, da Eclipse mit einem so genannten »inkrementellen Compiler« arbeitet. Wenn eine Java-Quellcodedatei gespeichert wird, übersetzt der Compiler automatisch diese Datei; dieses Feature nennt sich »autobuild«.


Galileo Computing

1.5.4 JBuilder von Borland  downtop

Der JBuilder (http://www.borland.de/jbuilder/) ist ein Borland-Produkt zur Entwicklung von Java-Applikationen unter Windows, Linux und Solaris. Mit 256 MB Arbeitsspeicher und einem Rechner ab 1 GHz ist die Arbeitsgeschwindigkeit gut. Das Produkt kommt mit Editor, Compiler, Debugger, visuellen Designern und Wizards daher. Die IDE verfügt über zahlreiche Eigenschaften, die den Entwicklungszyklus von professionellen Anwendungen verkürzen. Dazu zählen zum Beispiel ein Debugger, ein GUI-Builder zum Entwurf von grafischen Oberflächen mit voller Swing-Unterstützung, Remote Debugging und vieles mehr.

Zurzeit liegt der JBuilder X in den Produktlinien Foundation, Enterprise, Developer, und MobileSet vor. Alle Versionen nutzen das aktuelle Java SDK 1.4. Die Foundation Version ist eine recht beschnittene, aber dafür frei verfügbare Version (http://www.borland.com/products/downloads/download_jbuilder.html). Bei einem Preis von etwa 4.000 Euro für die Enterprise-Version macht sich Borland aber wenig Freunde. Meine persönliche Meinung ist, dass JBuilder durch die immer höher werdenden Kosten die Entwickler vertreibt und Borland sich nicht wundern darf, wenn sich immer mehr Entwickler-Mannschaften gegen den JBuilder entscheiden. Sie werden zur kostengünstigeren Entwicklungsumgebung Sun ONE – die in der Leistungsfähigkeit nicht zurücksteht – abwandern oder in Richtung Eclipse plus Plugins gehen.


Galileo Computing

1.5.5 Together  downtop

Ende 2002 hat Borland die Firma Togethersoft übernommen und liefert mit Together (früher TogetherJ) ein Case-Tool aus, welches UML-Design und Codegenerierung komfortabel vereint. Besonders interessant ist das Reverse- und Roundtrip-Engineering, welches es möglich macht, Java-Code zu importieren und UML-Diagramme zu generieren. Einige Abbildungen in diesem Buch stammen von Together. Ein Editor mit Quellcodeerweiterung macht Together zu einer vollständigen IDE. Weiterhin unterstützt das Tool CVS (Concurrent Versioning System), und es lassen sich einfach Datenbankverbindungen über Dialoge aufbauen. Together (http://www.borland.de/together/) spaltet sich in Control-Center und Solo auf. Solo ist die »Einsteigerversion« mit den bekannten UML-Diagrammen Use Case, Sequence, Collaboration, State, Activity, Component und Deployment. Das Control-Center erweitert Solo im Wesentlichen um EJB-Funktionalität. Das Together-Control-Center besitzt zudem einen GUI-Builder und unterstützt JUnit, EJB2.0 und Web-Services. Da die Software in Java programmiert ist, sollte der Rechner gut mit Speicher ausgestattet sein. Das Programm wird zusammengepackt in einem Archiv geliefert, ist aber auf verschiedenen Plattformen wie Windows und Linux lauffähig. Mit der Together Edition für Eclipse bietet Borland auch ein Plugin für Eclipse.


Galileo Computing

1.5.6 Ein Wort zu Microsoft, Java und zu J++  downtop

Der Hauptunterschied zwischen dem JDK von Sun und Microsoft liegt darin, dass Applikationen, die unter dem Microsoft Development Kit erstellt wurden, nicht zwangsläufig auf anderen Plattformen lauffähig sind. Da Microsoft mal wieder gegen alle Standards ist, sollte der J++-Compiler daher nicht verwendet werden. Microsoft fügte neue Schlüsselwörter (multicast und delegate) hinzu, entfernte einige Java-Methoden und fügte weitere Methoden und Eigenschaften hinzu. Dies ist zum Beispiel J/Direct. Microsoft versucht, der plattformunabhängigen Programmiersprache den Windows-Stempel zu verpassen. Denn Programme mit J/Direct laufen nur noch unter Windows-Plattformen. Mit J/Direct können Programmierer aus Java heraus direkt auf Funktionen aus dem Win32-API zugreifen und damit reine Windows-Programme in Java programmieren. So haben diese Programme auch Lese- und Schreibzugriff auf die Festplatte – ein Schrecken für alle Java-Programmierer. Durch Integration von DirectX soll die Internet-Programmiersprache Java multimediafähig gemacht werden. Es bleibt abzuwarten, wie es mit der Unterstützung von Java seitens Microsoft weitergeht. Die Aussagen von Microsoft-Projektleiter Ben Slivka über das Java Development Kit beziehungsweise die Java Foundation Classes, man müsse »sie bei jeder sich bietenden Gelegenheit anpissen« (»pissing on at every opportunity«), lassen keine harmonische Kooperation mit Sun vermuten.

Suns Produkte, die JNI und RMI nutzen, laufen nicht mit dem IE 4.0 zusammen. Wegen dieser Unregelmäßigkeiten darf Microsoft nach richterlicher Anordnung das Java-Logo nicht mehr in seinen Produkten führen und auch nicht mehr damit werben. Jetzt droht Microsoft natürlich damit, künftige Java-Versionen nur noch bedingt zu unterstützen. Ungefähr zeitgleich nahm Microsoft alle Java-Applets von seinen Web-Seiten – offiziell wegen mangelnder Geschwindigkeit. Da auch der Netscape Navigator Java nicht 100  % unterstützt, wurde das Java-Logo auch aus diesem Internet-Browser entfernt, um einer Klage im Vorfeld aus dem Weg zu gehen. Letztlich hat Sun sich aber durchgesetzt, und Microsofts Java-Variante J++ darf das geschützte Label »100  % Java kompatibel« nicht mehr benutzen.

Da Sun es finanziell nicht besonders gut geht, pumpte Microsoft im April 2004 satte 1,6 Milliarden US-Dollar in die Firma. Microsoft erkaufte sich damit das Ende der Kartellprobleme und Patentstreitigkeiten.


Galileo Computing

1.5.7 Direkt ausführbare Programme  toptop

Eine in Java geschriebene Applikation lässt sich natürlich nur mit der JVM ausführen. Doch einige Hersteller haben Compiler so ausgelegt, dass sie direkt unter Windows oder einem anderen Betriebssystem ausführbare Programme erstellen. Zwei Modelle werden unterschieden:

gp  Native Compiler: Compiler, die direkt plattformabhängigen Maschinensprachcode erzeugen, heißen native Compiler. Ihre Ausführungsgeschwindigkeit liegt nicht zwangsläufig über der der neuen optimierten Laufzeitumgebungen. Ein freier Compiler unter der GNU-Lizenz ist der GNU-Compiler gcj unter http://gcc.gnu.org/java/.
gp  Wrapper: Ein Wrapper ist ein ausführbares Programm und liegt wie eine Schale um die Java-Klassen. Der Wrapper ruft dann die virtuelle Maschine auf und übergibt ihr die Klassen. Es ist also immer noch eine Laufzeitumgebung nötig, doch lassen sich den Java-Programmen ein Icon mitgeben und Startparameter setzen. Ein freies Produkt ist JSmooth unter http://jsmooth.sourceforge.net/.





1   Der Objekt-Guru Peter Coad ist Vorsitzender der Firma. Von 1988 bis Ende 1999 lag Together in den Händen des Stuttgarter Softwarehauses Object International. Die Konkurrenz, James Rumbaugh, Grady Booch und Ivar Jacobson (die drei Amigos), sitzt bei Rational Rose.

2   Würden wir nicht gerade im westlichen Kulturkreis leben, wäre diese Geste auch nicht zwangsläufig unappetitlich. Im alten Mesopotamien steht »pissing on« für »anbeten«. Da jedoch die E-Mail nicht aus dem Zweistromland ist, bleibt die wahre Bedeutung wohl unserer Fantasie überlassen.





Copyright © Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de