2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP – 2.1 JDK/SDK/JRE und seine Versionen Programmieren mit Java –2.1.1 Übersicht JDK/SDK/JRE –2.1.2 Versionen JDK/SDK/JRE – 2.2 Installation und Dokumentation –2.2.1 Installation 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge –2.2.2 Dokumentation – 2.3 Java Entwicklungs-Tools –2.3.1 Standard Tools –2.3.2 IDEs © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 2.1 JDK/SDK/JRE und seine Versionen 2.1.1 Übersicht JDK/SDK/JRE 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Es gibt eine (verwirrend große) Anzahl von Java-Paketen in verschiedensten Versionen mit unterschiedlichsten Erweiterungen. – 2.1 JDK/SDK/JRE und seine Versionen 2 Häufig auftretende Abkürzungen sind: – JDK: Java Development Kit (Entwicklung von Java-Programmen) – SDK: Software Development Kit (erweiterte Entwicklung von Java-Programmen) – JRE: Java Runtime Environment (Ausführung von Java-Programmen) –2.1.1 Übersicht JDK/SDK/JRE –2.1.2 Versionen JDK/SDK/JRE – 2.2 Installation und Dokumentation Das JDK ist quasi immer das Grundpaket, das ein lauffähiges Java in den anderen Paketen installiert. Wenn daher im Folgenden vom JDK gesprochen wird, so ist auch immer das SDK und JRE gemeint, da in diesen das JDK (oder zumindest teilweise dessen Funktionalität) integriert ist. – 2.3 Java Entwicklungs-Tools Zusätzlich existieren drei so genannte Java-2-Plattformen (auch als Technologien oder Frameworks bezeichnet): – J2SE: Java 2 Standard Edition – J2ME: Java 2 Micro Edition – J2EE: Java 2 Enterprise Edition © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 3 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 4 2.1.1 Übersicht JDK/SDK/JRE 2.1.1 Übersicht JDK/SDK/JRE Die Enterprise Edition (J2EE) erweitert die Standard Edition (J2SE) mittels zusätzlicher Tools und Komponenten: Development Tools sind Java-Werkzeuge zum Kompilieren, Debuggen, Dokumentation Erstellen usw. User Interface Toolkits enthalten die Application Programming Interfaces (Programmierschnittstellen, API), welche die Erstellung von Grafikoberflächen ermöglichen. Libraries enthalten die Programmierschnittstellen (API), welche zusätzliche Java-Funktionalität für verschiedenste Anwendungen zur Verfügung stellen. Die 3 existierenden Java-2-Plattformen (J2SE, J2ME und J2EE) erweitern das JDK (Version 1.3 oder höher) mit zusätzlichen Komponenten (hauptsächlich Klassenbibliotheken...): Java Virtual Machine (JVM) ist der Kern aller Java-Entwicklungswerkzeuge, der JavaProgramme plattformunabhängig laufen lässt. – Die Standard Edition (J2SE) ist das Standard-Java-Paket. JVM ist von Sun für Platforms Solaris, Linux und Windows entwickelt und von anderen Computerbzw. Betriebssystemherstellern für ihre unterstützten Plattformen adaptiert (z.B. SGIWorkstations, Java-fähige Handies von Nokia, Motorola...). © Prof. Dr. Rolf Dornberger – Die Micro Edition (J2ME) unterstützt ein eingeschränktes Java für Geräte wie Mobiltelefone oder PDAs. Quelle: http://java.sun.com/javase/technologies/index.jsp [Stand: 27.08.08] OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 5 2.1.2 Versionen JDK/SDK/JRE – Die Enterprise Edition (J2EE) unterstützt ein erweitertes Java zum Entwickeln verteilter, unternehmensweiter Applikationen. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 6 22.09.2010 8 2.2 Installation und Dokumentation Java-Versionen von SUN entwickelt: – 1995: HotJava (beta) – 1996: JDK 1.0 (beta) – 1997: JDK 1.1 (beta; HotJava 1.0; JavaOS 1.0) – 1998: JDK 1.2 (1999 umbenannt in Java 2 Platform) – 1999: JDK 1.3 (beta) – 2000: JDK 1.3 (identisch mit Java 2 und SDK 2) – 2002: JDK 1.4 – 2004: JDK 1.5 (Java 5, J2SE 5.0) 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge – 2.1 JDK/SDK/JRE und seine Versionen – 2.2 Installation und Dokumentation –2.2.1 Installation –2.2.2 Dokumentation – 2.3 Java Entwicklungs-Tools – ... © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge – 2009: JDK 6 Update 12 22.09.2010 7 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 2.2.1 Installation 2.2.1 Installation Manchmal wird das Java Runtime Environment (JRE) auf dem Computer automatisch installiert, z.B. Soll Java direkt installiert werden, geschieht dies am besten über die Download-Seite http://java.sun.com/: – wenn man Java Applets über das Internet aufruft oder Java-Programme auf dem Computer installiert und noch keine JVM (in der richtigen Version) installiert ist. – Meist merkt der Benutzer davon nicht viel (Fenster, ob installiert werden soll). OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 – Entsprechende Java-Version wählen. – Entsprechendes Betriebssystems, gegebenenfalls Sprache und SDK bzw. JRE wählen und downloaden. – Herunter geladenes Executable (beispielsweise jdk-6u12-windows-i586p.exe) auf eigenem Computer ausführen und Java-Version in entsprechendem Verzeichnis installieren. Die manuelle Installation des JRE oder Software Development Kit (SDK) von Java erfolgt entweder direkt oder über eine JavaEntwicklungssoftware. © Prof. Dr. Rolf Dornberger – Entsprechende Java-Plattform (auch als Technologie bezeichnet) wählen. – Entsprechende Java-Dokumentation herunterladen (z.B. jdk-6u10docs.zip). 9 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 2.2.1 Installation 2.2.1 Installation Nach Installation sind ausser den Text- und HTML-Files (COPYRIGHT, LICENCE, README) folgende Unterverzeichnisse angelegt: Im Java-Verzeichnis liegt ausserdem noch ein File src.zip, welches die vollständigen Quelltexte aller mitgelieferten Java-Pakete enthält. – \bin enthält alle Executables, die mit dem SDK für diesen Computer ausgeliefert werden. – \lib enthält alle Standard-Java-Klassen (als jar-Files), die für die Entwicklung von Java-Programmen benutzt werden können. – \jre beinhaltet die Laufzeitumgebung von Java (Java Runtime Environment). Hier liegen alle plattformspezifischen Files, um JavaProgramme unter diesem Betriebssystem auf diesem Computer laufen zu lassen. 10 Auch sollte die Dokumentation zur entsprechenden Java-Version installiert sein. Dann befindet sich das Unterverzeichnisse \doc in diesem Verzeichnis. Über das File \doc\index.html kann dann darauf zugegriffen werden. – \include ist ein optionales Verzeichnis, das Source-Code (Header-Dateien) für eine Anbindung von Java an C/C++ enthält. – \demo und \sample enthalten viele kleinere und grössere JavaBeispielprogramme. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 11 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 12 2.2.2 Dokumentation 2.2.2 Dokumentation Für die Vorlesung sind speziell empfohlen: – Dornberger, Rolf (2006): Objektorientierte Programmierung; http://web.fhnw.ch/personenseiten/rolf.dornberger/Documents/Lectures/oo p.html; Fachhochschule Nordwestschweiz, Hochschule für Wirtschaft; 2006. – The Source for JavaTM Technology; Sun Microsystems, Inc.; http://java.sun.com/ [ohne Jahr]. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 13 Neben der mitgelieferten Java-Dokumentation gibt es Unmengen zusätzlicher Literatur. Eine kleine Auswahl wurde bereits anfangs vorgestellt: – Daum, Berthold: Java-Entwicklung mit Eclipse 3.1; dpunkt.verlag; 2005. – Nowak, Johannes: Fortgeschrittene Programmierung mit Java 5; dpunkt.verlag; 2005. – Krüger, Guido: Handbuch der Java-Programmierung; 4. Auflage; http://www.javabuch.de/; Addison-Wesley, 2004. – Saake, Gunter; Sattler, Kai-Uwe; Algorithmen und Datenstrukturen - Eine Einführung in Java; dpunkt.verlag; 2004. – Ratz , Dietmar; Scheffler, Jens; Seese, Detlef; Wiesenberger, Jan: Grundkurs Programmieren in Java, Band 2; Hanser, 2003. – Cornell, Gary; Horstmann, Cay S:. Core Java 2 Grundlagen; Markt und Technik; Sun Microsystems; 2002. – Esser, Friedrich: Java 2; Galileo Press; 2002. – Flanagan, David: Java in a Nutshell, Deutsche Ausgabe der 4.Auflage; O‘Reilly; 2002. – Jobst, Fritz: Programmieren in Java; Hanser; 2002. – Steyer, Ralph: Java 2, Das Programmierhandbuch; Markt+Technik bei Heyne; 2001. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 2.3 Java Entwicklungs-Tools 2.3 Java Entwicklungs-Tools 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Mit dem JDK werden auch verschiedene Software-Entwicklungswerkzeuge (= Tools) mitgeliefert, weshalb SUN gerade deshalb eher vom SDK (Software Development Kit) als vom JDK (Java Development Kit) spricht. Diese Entwicklungswerkzeuge sind wiederum Computerprogramme, mit deren Hilfe Java-Programme beispielsweise übersetzt, nach Fehlern durchsucht und dokumentiert werden können. – 2.1 JDK/SDK/JRE und seine Versionen – 2.2 Installation und Dokumentation – 2.3 Java Entwicklungs-Tools –2.3.1 Standard Tools –2.3.2 IDEs 14 Nicht standardmässig mitgeliefert wird ein Editor oder eine anwenderfreundliche Programmierumgebung, sondern nur die notwendigen Grundprogramme, um Java zum Laufen zu bringen. In der Vorlesung kommen wir später zu den Programmierumgebungen (IDE = Integrated Development Environment). Bis dahin verwenden wir einen einfachen Editor, um erstes das Verständnis zu stärken, was genau passiert, bis eine JavaProgramm läuft. Und zweitens, um nicht durch die große Funktionalität von IDEs abgelenkt zu sein. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 15 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 16 2.3.1 Standard Tools 2.3.1 Standard Tools Die wichtigsten beiden Tools sind der Java-Compiler javac, der den JavaQuellcode in Java-Bytecode übersetzt, und der Java-Interpreter java, der diesen Java-Bytecode ausführt. Weitere wichtige Tools, die standardmässig mit dem JDK mitgeliefert werden: – appletviewer ist ein Programm, das es ähnlich einem Browser erlaubt, Java Applets (=Java-Programme, die nur in einem Browser lauffähig sind) aufzurufen und deren Grafikausgaben zu betrachten. – javadoc erstellt aus Java-Quelltexten Dokumentationen im HTML-Format. Dazu verwendet es die öffentlichen Klassen-, Interface- und Methodendeklarationen und fügt zusätzliche Informationen aus eventuell vorhandenen Dokumentationskommentaren hinzu. – javap ist ein so genannter Disassembler, der aus dem Java-Bytecode so viel wie möglich Information zum Java-Quellcode rekonstruiert. Ein Wiederherstellen des ursprünglichen Java-Quellcodes ist aber unmöglich. – jdb ist ein Debugger (zu deutsch: Entwanzer), mit dem Fehler in JavaProgrammen gesucht und gefunden werden können. Programme können schrittweise ablaufen gelassen werden, um sich den Inhalt von Variablen oder Objekten explizit anzeigen zu lassen und diese manipulieren zu können. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 18 – jar ist ein Archivierungsprogramm, das Dateien und komplette javac: Java-Compiler – Übersetzt Java-Quellcode in Java-Bytecode – Dateien mit Java-Quellcode müssen die Endung .java haben – Dateien mit Java-Bytecode erhalten die Endung .class (und lauten so, wie die Klassen im Java-Quellcode benannt sind) – javac [Optionen] [Dateiname] [@files] – @files ist eine Datei, die mehrere Java-Dateien enthält java: Java-Interpreter – Führt eigenständige Java-Anwendungen aus – java [Optionen] [Klassenname] [Argumente] – Anstelle von [Klassenname] kann auch –jar file.jar stehen, wenn in dem Paket file.jar die entsprechende Klasse mit Klassenname enthalten ist. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 17 2.3.2 IDEs 2.3.2 IDEs IDEs (Integrated Development Environments) sind Programmier- bzw. Entwicklungswerkzeuge, die es erlauben, auf komfortable Art und Weise Computer-Programme zu erstellen. Es gibt leistungsfähig kommerzielle IDEs, die je nach Funktionalität und Einsatzgebiet teuer werden können. Es gibt aber auch freie IDEs (Freeware und Open-Source), die sehr von einfach und intuitiv bedienbar bis sehr leistungsfähig sind. Z.B.: IDEs gibt es für verschiedenste Programmiersprachen. Manche IDEs lassen sich auch für mehrere Programmiersprachen einsetzen. Immer wiederkehrende Ausdrücke im Quelltext eines Programms werden automatisch bzw. mittels Knopfdruck im Editor erzeugt, was viel Schreibarbeit erspart. Das Kompilieren und Debuggen erfolgt ebenfalls automatisch auf Knopfdruck. – Eclipse (Open-Source): http://www.eclipse.org – jcreator (Xinox): http://www.jcreator.com/ – NetBeans (SUN): http://www.netbeans.org/ oder http://java.sun.com/ – JBuilder Freeware (Borland): http://www.borland.com/jbuilder/ IDEs für Java kombinieren die wichtigsten Java-Tools (javac, java, javadoc, jar, eventuell jdb, javap...) mit einer benutzerfreundlichen Grafikbedienoberfläche und einem komfortablen Editor. Viele (bzw. die meisten) Interaktionen mit dem JDK sind vollständig grafisch unterstützt. © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 – bluej (Monash University): http://www.bluej.org/ – ... 19 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 20 2.3.2 IDEs Lernziele CASE-Tools (Computer-Aided Software Engineering) gehen noch einen Schritt weiter und generieren aus einer Modellierung direkt Quellcode und kompilieren diesen zum fertigen Programm. CASE-Tools für Java sind z.B.: Erklären können, was JDK, SDK, JRE, J2SE, IDE, CASE usw. bedeutet und wie sich diese Varianten unterscheiden. – Eclipse mit Plugin (Open-Source): http://www.eclipse.org – Poseidon (Gentleware): http://www.gentleware.com Java SDK der neusten Version samt Online-Dokumentation auf dem Computer installieren können und den Inhalt der einzelnen JavaVerzeichnisse grob kennen. – Rational Rose (Rational): http://www.rational.com/ – Together (Borland): http://www.borland.com/together/ – ... © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 21 © Prof. Dr. Rolf Dornberger OOP: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge 22.09.2010 22