1.7 Entwicklungs- und Laufzeitumgebungen
 
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.
1.7.1 Aller Anfang mit dem Java SDK
 
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 aus Compiler und Interpreter kostenlos aus. Sie unterteilen ihr Produkt dabei in drei Bereiche:
|
Java 2 Standard Edition (J2SE). Sie 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. |
|
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. |
|
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 erste JDK 1.0.2 wurde 1996 veröffentlicht. Seit den ersten Versionen hat sich die Sprache Java nicht wesentlich verändert.
1.7.2 Die Entwicklungsumgebung von Sun: Sun ONE Studie (früher Forte) und NetBeans
 
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 im Vergleich zu JBuilder oder Visual Café gering. Das änderte sich, als Sun das kalifornische Softwarehaus Forte übernahm und damit wieder eine bedeutende Rolle bei den Java-Entwicklungsumgebungen einzunehmen begann. 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 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 steht zum kostenlosen Download zur Verfügung, die Profi-Version kostet etwa 2.000 Dollar. Die Umgebung ist komplett in Java implementiert und modular aufgebaut, so dass Entwickler zusätzliche Bausteine implementieren können. Die Internet und Enterprise Edition unterstützt die J2EE und hilft bei der Erstellung von Datenbank- und JSP/Servlets, EJB, CORBA, RMI und JNDI.
Auf dem gleichen Kern wie Forte baut NetBeans auf. Beide verwenden den gleichen Kern, nur ist NetBeans (http://www.netbeans.org/) ein Open-Source-Produkt und Forte nicht.
1.7.3 Umgebungen von IBM
 
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. IBM geht dabei so weit, dass sie nicht nur einen, sondern gleich zwei Java-Compiler auf den Markt bringen. Der erste ist der High Performance Compiler for Java. Der IBM-Compiler erzeugt neben den herkömmlichen Klassendateien auch Exe-Dateien, also Windows-Executables.
Neben diesem hervorragenden Übersetzer hat IBM noch einen besonderen Leckerbissen parat: Den Compiler Jikes, der im Quellcode unter der Open-Source-Lizenz vorliegt. Da er ohne problematische C++-Eigenschaften erstellt ist, lässt er sich unter jedem Betriebssystem übersetzen, auf dem ein C++-Compiler existiert. Binärdateien liegen für Win32, Linux, AIX und OS/2 auf dem Server http://www.ibm.com/research/jikes/ bereit. Der Quellcode (jikesos.tar.gz) ist mit etwa einem halben Megabyte recht übersichtlich und schnell geladen. 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 Javaquellcode, 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, so dass es zu unterschiedlichen Auslegungen kommt. Ein weiterer Nachteil ist die fehlende Optimierung, die durch den Schalter -O nicht eingeschaltet wird. Die Option bedeutet lediglich, dass keine Debug-Informationen angelegt werden. Dies ist irreführend, da sich unter dem Sun Compiler auch eine Optimierung versteckt; dieser war allerdings schwer anzusehen, wo sie nun wirklich optimiert. Seit SDK 1.2 bedeutet -O bei Sun lediglich, dass keine Debug-Infos erzeugt werden.
Seit Ende 2001 unterstützt IBM die neue unabhängige Java-basierte Open-Source-Software Eclipse. IBM löst damit die alte WebSphere-Reihe und die Umgebung Visual Age for Java ab. Mit Eclipse soll es möglich sein, 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 dem Markt zu geben, wo doch NetBeans schon so toll ist. Nun ja, die Entwickler werden entscheiden. Neue Statistiken zeigen, dass an Eclipse schon mehr Entwickler arbeiten als an NetBeans.
1.7.4 TogetherJ
 
Die Firma Togethersoft1
(http://www.togethersoft.com/) liefert das Case-Tool Together (früher TogetherJ) aus, das 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. Die Abbildungen in diesem Buch stammen allesamt 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.
TogetherJ spaltet sich in Control-Center, Solo und Community Edition 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. Seit der Version 6 besitzt Together Control Center einen GUI-Builder und unterstützt JUnit, EJB2.0 und Web-Services. Die Community-Version (http://www.togethercommunity.com/tcccommunityedition.jsp) ist frei, darf aber nicht kommerziell genutzt werden. 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.
1.7.5 JBuilder von Borland
 
Der 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 folgende zum Beispiel ein Debugger, GUI-Builder zum Entwurf von grafischen Oberflächen mit voller Swing-Unterstützung, Remote Debugging, und viele mehr.
Zur Zeit liegt der JBuilder in der Version 7 und den Produktlinien Personal, SE (ersetzt die frühere Professional-Version), Enterprise und MobileSet vor. Alle Versionen basieren nicht auf dem SDK 1.4. Die Personal Version ist eine recht beschnittene, aber dafür frei verfügbare Version. Bei einem Preis von 5000 Euro für die SE-Version macht sich Borland aber wenig Freunde, und viele Entwickler wandern zur kostengünstigeren IDE SUN ONE, die in der Leistungsfähigkeit nicht zurücksteht.
Installation und Registrierung bei der Personal-Edition
Die Borland JBuilder Personal Edition liegt unter http://www.borland.com/jbuilder/personal/ zum kostenlosen Download bereit. Neben der reinen Entwicklungsumgebung lassen sich Dokumentation und Beispiele laden. Sobald das Installationsarchiv auf dem Rechner liegt, lässt sich die Installation starten. Bevor sich die Version nutzen lässt, muss ein Registrierungsschlüssel beantragt werden. Dazu ist unter http://www.borland.com/jbuilder/offers/ die Registrierung auszufüllen. Anschließend wird eine E-Mail versandt, die eine Seriennummer und einen Lizenz-Sschlüssel enthält. Wird JBuilder zum ersten Mal ausgeführt, sind Name und Firmenbezeichnung einzugeben. Anschließend müssen die Seriennummer und der Lizenz-Sschlüssel eingetragen werden.
1.7.6 Die virtuelle Maschine Kaffe von Transvirtual Technologies
 
Neben der Java VM von Sun liefert die Firma Transvirtual Technologies >http://www.transvirtual.com/tech/kaffe.html) eine JVM mit dem Namen Kaffe >http://www.kaffe.org/) aus, die unter Open Source steht. Der Name wurde gewählt, da der Anfang der Entwicklung im Elchland liegt und Kaffe das schwedische Wort für Kaffee ist. Transvirtual Technologies hat zwei JVMs im Angebot: Eine offene Version, die Desktop Edition, die unter der GPL steht, und eine Custom Edition für eingebettete Systeme. Insgesamt wird damit eine große Anzahl von Prozessoren (x86, StrongARM, MIPS, m68k, Sparc, Alpha, PowerPC, PARisc) und Betriebssystemen (Embedded Linux, VxWorks, LynxOS, SMX, ThreadX, Linux, DOS, Windows NT 4.0, Windows 98, Windows 2000, Windows CE, Solaris) unterstützt.
Die Implementierung hält sich komplett an den Java-Standard und ist kompatibel zum Personal Java 1.1-System. Sie enthält nicht nur die virtuelle Maschine mit JIT-Compiler, sondern auch native Bibliotheken für Grafik, Ein-/Ausgabe, Dateimanagement und Netzwerkunterstützung. Das Gute dabei ist, dass der Einblick durch Open Source möglich ist. Wir werfen daher immer wieder einen Blick in die Quellcodes und vergleichen Implementierungsstile von Sun und Transvirtual Technologies.
Microsoft hat eine nicht näher benannte Summe in Transvirtual Technologies investiert. Da Microsoft aus Lizenzgründen kein Java mehr entwickeln darf, sichert sich der Konzern den Zugang zu einer moderneren JVM. Denn die Laufzeitumgebung von Kaffe arbeitet nicht nur herkömmliche Javap-Programme ab, sondern auch die MS-Erweiterungen, wie J/Direct, die Windows-typische Eigenschaften nutzen. Die Unternehmen Transvirtual, Microsoft und Hewlett-Packard sowie andere kleinere Firmen haben sich zum J-Consortium zusammengeschlossen, um einen alternativen Standard zu etablieren.
1.7.7 Die Entwicklungsumgebung CodeGuide
 
Die Entwicklungsumgebung CodeGuide der deutschen Firma Omnicore Software (http://www.omnicore.com/) lässt sich gut in Java-Kursen einsetzen. Sie hat gegenüber anderen Umgebungen den Vorteil, dass der Editor besonders Spracheinsteigern hilft, sich mit der Syntax anzufreunden. Dazu unterkringelt CodeGuide ähnlich wie moderne Textverarbeitungssysteme fehlerhafte Stellen. In Eclipse ist eine ähnliche Technik implementiert, die jedoch noch nicht so weit geht. Zusätzlich bietet es die notwendigen Hilfen beim Entwickeln, wie etwa automatische Codevervollständigung. CodeGuide setzt auf dem Java SDK auf und kann somit immer die neuesten Versionen benutzen. Zur schnellen Übersetzung nutzt CodeGuide den freien IBM-Compiler Jikes-Compiler, der im Paket mit eingebunden ist.
Zu den Nachteilen gehört, dass CodeGuide keine Unterstützung von grafischen Oberflächen (GUI-Builder) anbietet.
Voraussetzungen
CodeGuide ist ein reines Java-Produkt, das erstaunlich flüssig seine Arbeit verrichtet. Um das Java-Programm kapselt ein Startprogramm den Interpreteraufruf. Für folgende Systeme wird CodeGuide bisher mit Startern angeboten: Windows Edition (Windows 95, 98, NT (mit mindestens Service Pack 3), Windows 2000), Linux, Solaris Intel oder Sparc, MacOS X.
Demoversion und Kosten
CodeGuide ist für 30 Tage frei zu benutzen. Dann muss von Omnicore ein Schlüssel bezogen werden, der CodeGuide freischaltet. Die Lizenzgebühren richten sich nach der Anzahl der Entwickler und dem Status. Leider ist das Produkt nicht so billig, und es sollte gut überlegt werden, ob der einzige Vorteil der Unterkringelung für eine Anschaffung spricht.
Typ
|
Preis in US$
|
1–4 Entwickler
|
299
|
5–10 Entwickler
|
285
|
10 und mehr Entwickler
|
269
|
Bildungseinrichtung
|
sales@omnicore.com
|
Installation und Programmstart
Wir beschreiben den Vorgang unter Windows. Unter http://www.omnicore.com/ können wir CodeGuide als komprimiertes Archiv mit einer Größe von 14 MB laden. Dann kann es wie ein normales Programm unter Windows installiert werden. Die Installation legt ein Icon auf dem Desktop und einen Eintrag im System/Programme/Omnicore an. Nach dem ersten Start werden die Pfade zum JDK automatisch gesucht und eintragen. Jetzt lässt sich ein Demoprojekt anlegen und alles sofort ohne Konfiguration starten.
1.7.8 Ein Wort zu Microsoft, Java und zu J++
 
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 wie MacOS, UNIX und Netscape Navigator 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 bzw. die Java Foundation Classes, man müsse „es bei jeder sich bietenden Gelegenheit anpissen“ („pissing on at every opportunity“), lassen eine harmonische Kooperation mit Sun nicht vermuten.2
Es laufen Suns Produkte, die JNI und RMI nutzen, 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. Es war auch ungefähr zu der Zeit, als Microsoft alle Java-Applets von seinen Web-Seiten nahm – offiziell wegen mangelnder Geschwindigkeit. Da auch der Netscape Navigator nicht 100 % Java 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 Kkompatibel“ nicht mehr benutzen.
1.7.9 Direkt ausführbare Programme für Windows compilieren
 
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. Meistens funktioniert das mit einem Wrapper. Dieser 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.
Compiler, die direkt plattformabhängigen Maschinensprachcode erzeugen, heißen native Compiler. Unter ihnen sind zum Beispiel BulletTrain (http://www.naturalbridge.com/), Excelsior JET (http://www.excelsior-usa.com/jet.html), JOVE (http://www.instantiations.com/jove/product/productdetails.htm), TowerJ (http://www.towerj.com/) für Windows und weitere Systeme. Freie Compiler unter der GNU-Lizenz sind gcj (http://gcc.gnu.org/java/) und Manta (http://www.cs.vu.nl/manta/).
1
Der Objekt-Guru Peter Coad ist Vorsitzender der Firma. Von 1988 bis Ende 1999 lag Together in den Händen des Stuttgarter Softwarehaus Object International. Die Konkurrenz, James Rumbaugh, Grady Booch und Ivar Jacobson (die drei Amigos) sitzen 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.
|