Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.
 
Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Eigene Klassen schreiben
6 Objektorientierte Beziehungsfragen
7 Ausnahmen müssen sein
8 Äußere.innere Klassen
9 Besondere Typen der Java SE
10 Generics<T>
11 Lambda-Ausdrücke und funktionale Programmierung
12 Architektur, Design und angewandte Objektorientierung
13 Die Klassenbibliothek
14 Einführung in die nebenläufige Programmierung
15 Einführung in Datenstrukturen und Algorithmen
16 Einführung in grafische Oberflächen
17 Einführung in Dateien und Datenströme
18 Einführung ins Datenbankmanagement mit JDBC
19 Einführung in <XML>
20 Testen mit JUnit
21 Bits und Bytes und Mathematisches
22 Die Werkzeuge des JDK
A Java SE Paketübersicht
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 20,0 MB
- Übungsaufgaben, ca. 1,8 MB
- Musterlösungen, ca. 0,8 MB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenbloom
Das umfassende Handbuch
Buch: Java ist auch eine Insel

Java ist auch eine Insel
Rheinwerk Computing
1306 Seiten, gebunden, 11. Auflage
49,90 Euro, ISBN 978-3-8362-2873-2
Pfeil 22 Die Werkzeuge des JDK
Pfeil 22.1 Java-Quellen übersetzen
Pfeil 22.1.1 Java-Compiler vom JDK
Pfeil 22.1.2 Alternative Compiler
Pfeil 22.1.3 Native Compiler
Pfeil 22.1.4 Java-Programme in ein natives ausführbares Programm einpacken
Pfeil 22.2 Die Java-Laufzeitumgebung
Pfeil 22.2.1 Schalter der JVM
Pfeil 22.2.2 Der Unterschied zwischen java.exe und javaw.exe
Pfeil 22.3 Mit RoboVM geht’s für Java in das iOS-Land *
Pfeil 22.4 Dokumentationskommentare mit Javadoc
Pfeil 22.4.1 Einen Dokumentationskommentar setzen
Pfeil 22.4.2 Mit dem Werkzeug javadoc eine Dokumentation erstellen
Pfeil 22.4.3 HTML-Tags in Dokumentationskommentaren *
Pfeil 22.4.4 Generierte Dateien
Pfeil 22.4.5 Dokumentationskommentare im Überblick *
Pfeil 22.4.6 Javadoc und Doclets *
Pfeil 22.4.7 Veraltete (deprecated) Typen und Eigenschaften
Pfeil 22.4.8 Javadoc-Überprüfung mit DocLint
Pfeil 22.5 Das Archivformat JAR
Pfeil 22.5.1 Das Dienstprogramm jar benutzen
Pfeil 22.5.2 Das Manifest
Pfeil 22.5.3 Applikationen in JAR-Archiven starten
Pfeil 22.5.4 Pack200-Format *
 
Zum Seitenanfang

22Die Werkzeuge des JDK Zur vorigen ÜberschriftZur nächsten Überschrift

»Erfolg sollte stets nur die Folge, nie das Ziel des Handelns sein.«
– Gustave Flaubert (1821–1880)

Dieses Kapitel stellt die wichtigsten Programme des JDK vor. Da die meisten Programme kommandozeilenorientiert arbeiten, werden sie zusammen mit ihrer Aufrufsyntax vorgestellt. Bei den JDK-Programmen handelt es sich unter anderem um folgende Tools:

  • javac: Java-Compiler zum Übersetzen von .java- in .class-Dateien

  • java: Java-Interpreter zum Ausführen der Java-Applikationen

  • appletviewer: Applet-Viewer zum Ausführen von Java-Applets, die in eine HTML-Datei eingebettet sind

  • javah: Generator für Header- und Quellcode-Rümpfe für den nativen Zugriff

  • javap: Anzeiger vom Bytecode einer Klassendatei

  • jdb: Debugger zum Durchlaufen eines Programms

  • javadoc: Dienstprogramm zum Erzeugen von Dokumentationen

  • jar: Archivierungswerkzeug, um Dateien in einem Archiv zusammenzufassen

  • jconsole: Java-Monitoring- und Management-Konsole

  • pack200, unpack200: Starke (De-)Kompression von JAR-Dateien

  • serialver: Generiert serialVersionUID.

  • keytool, jarsigner und policytool: Programme zum Einstellen der Sicherheitseigenschaften

Obwohl es versionsabhängig noch weitere Aufrufparameter gibt, sind nur diejenigen aufgeführt, die offiziell in der aktuellen Dokumentation genannt sind.

 
Zum Seitenanfang

22.1Java-Quellen übersetzen Zur vorigen ÜberschriftZur nächsten Überschrift

Ein Java-Compiler übersetzt Java-Quellcode-Dateien in Bytecode. Das JDK liefert standardmäßig den Java-Compiler javac mit aus.

 
Zum Seitenanfang

22.1.1Java-Compiler vom JDK Zur vorigen ÜberschriftZur nächsten Überschrift

Der Compiler javac übersetzt den Quellcode einer Datei in Java-Bytecode. Jede in einer Datei deklarierte Klasse übersetzt der Compiler in eine eigene Klassendatei. Wenn bei einer Klasse (nennen wir sie A) eine Abhängigkeit zu einer anderen Klasse (nennen wir sie B) besteht – wenn zum Beispiel A von B erbt – und B nicht als Bytecode-Datei vorliegt, dann verarbeitet der Compiler B automatisch mit. Der Compiler überwacht also automatisch die Abhängigkeiten der Quelldateien. Der allgemeine Aufruf des Compilers ist:

$ javac [ Optionen ] Dateiname(n).java

Option

Bedeutung

-classpath Klassenpfad bzw.

-cp Klassenpfad

Eine Liste von Pfaden, auf denen der Compiler die Klassendateien finden kann. Diese Option überschreibt die unter Umständen gesetzte Umgebungsvariable CLASSPATH und ergänzt sie nicht. Ein Semikolon (Windows) bzw. Doppelpunkt (Unix) trennt mehrere Verzeichnisse.

-d Verzeichnis

Gibt an, wo die übersetzten .class-Dateien gespeichert werden. Ohne Angabe legt der Compiler sie in das gleiche Verzeichnis wie das mit den Quelldateien.

-deprecation

Zeigt veraltete Methoden an.

-g

Erzeugt Debug-Informationen. Die Option muss gesetzt sein, damit der Debugger alle Informationen hat. –g:none erzeugt keine Debug-Informationen, was die Klassendatei etwas kleiner macht.

-nowarn

Deaktiviert die Ausgabe von Warnungen. Fehler (errors) werden noch angezeigt.

-source Version

Erzeugt Bytecode für eine bestimmte Java-Version.

-sourcepath Quellpfad

Ähnlich wie -classpath, nur sucht der Compiler im Quellpfad nach Quelldateien.

-verbose

Ausgabe von Meldungen über geladene Quell- und Klassendateien während der Übersetzung.

Tabelle 22.1Optionen des Compilers javac

 
Zum Seitenanfang

22.1.2Alternative Compiler Zur vorigen ÜberschriftZur nächsten Überschrift

Neben dem Java-Compiler vom JDK gibt es weitere Compiler, die Java-Quellcode in Bytecode abbilden, doch diese haben keine große Bedeutung, da javac frei ist und einfach die »Referenz« bildet. Die Entwicklungsumgebung Eclipse nutzt einen eigenen Java-Compiler (EJC), um flexibel zu sein und einfach während des Speichers und Tippens schon Teile übersetzen zu können.

Wie auch javac ist der Eclipse-Compiler selbst in Java implementiert und generiert Bytecode[ 264 ]. Es gibt aber auch Java-Compiler in C(++), wie den GNU Compiler for Java (gcj)[ 265 ] oder den Jikes-Compiler[ 266 ], doch die beiden letzten Projekte wurden lange nicht aktualisiert und spielen praktisch keine Rolle mehr.

 
Zum Seitenanfang

22.1.3Native Compiler Zur vorigen ÜberschriftZur nächsten Überschrift

Eine in Java geschriebene Applikation lässt sich erst einmal nur mit einer Java-Laufzeitumgebung ausführen. Einige Hersteller haben jedoch Compiler entwickelt, die direkt unter Windows oder einem anderen Betriebssystem ausführbare Programme erstellen. Die Compiler, die aus Java-Quelltext – oder Java-Bytecode – Maschinencode der jeweiligen Architektur erzeugen, nennen sich native oder Ahead-of-time-Compiler. Das Ergebnis ist eine direkt ausführbare Datei, die keine Java-Laufzeitumgebung nötig macht. Je nach Anwendungsfall kann das Programm performanter sein, eine Garantie dafür gibt es allerdings nicht. Die Startzeiten sind im Allgemeinen geringer, und das Programm ist viel schwieriger zu entschlüsseln, was das Reverse Engineering[ 267 ] angeht.

Ein freier nativer Compiler unter der GNU-Lizenz ist gcj (http://gcc.gnu.org/java/), der nicht nur Java-Klassendateien generiert, sondern auch direkt ausführbare Dateien. Doch wie vorher schon geschrieben, ist das Projekt inaktiv. Ein kommerzieller Vertreter ist Excelsior JET (http://www.excelsiorjet.com/). Dass viele Hersteller ihre Produkte eingestellt haben, ist sicherlich ein Zeichen dafür, dass die existierenden Laufzeitumgebungen mittlerweile eine ausreichende Geschwindigkeit, einen vertretbaren Speicherverbrauch und annehmbare Startzeiten zeigen.

 
Zum Seitenanfang

22.1.4Java-Programme in ein natives ausführbares Programm einpacken Zur vorigen ÜberschriftZur nächsten Überschrift

Wer Java-Programme vertreibt, weiß um das Problem der JVM-Versionen, Pfade, Start-Icons, Splash-Screens usw. Eine Lösung besteht darin, einen Wrapper zu bemühen, der sich als ausführbares Programm wie eine Schale um das Java-Programm legt. Der Wrapper ruft die virtuelle Maschine auf und übergibt ihr die Klassen. Es ist also immer noch eine Laufzeitumgebung nötig, doch lassen sich den Java-Programmen Icons mitgeben und Startparameter setzen. Java 8 bringt mit einem javafxpackager[ 268 ] ein Tool zum Generieren von nativen Wrappern mit.

Die Open-Source-Software launch4j (http://launch4j.sourceforge.net/) kapselt ein Java-Archiv mit Klassen und Ressource-Dateien in ein komprimiertes, ausführbares Programm für Windows, Linux, Mac OS X und Solaris. launch4j setzt Eigenschaften wie ein assoziiertes Icon oder Startvariablen mit einer angenehmen grafischen Oberfläche. Ein weiteres quelloffenes und freies Programm ist JSmooth (http://jsmooth.sourceforge.net/). Für beide gibt es Ant-Skripte.

 


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
 Zum Katalog
Zum Katalog: Java ist auch eine Insel Java ist auch eine Insel
Jetzt bestellen

 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java SE 8 Standard-Bibliothek
Java SE 8 Standard-Bibliothek


Zum Katalog: Professionell entwickeln mit Java EE 7
Professionell entwickeln mit Java EE 7


Zum Katalog: Schrödinger programmiert Java
Schrödinger programmiert Java


Zum Katalog: Einführung in Java
Einführung in Java


Zum Katalog: Programmieren lernen mit Java
Programmieren lernen mit Java


Zum Katalog: Apps entwickeln für Android 5
Apps entwickeln für Android 5


Zum Katalog: Apps entwickeln mit Android Studio
Apps entwickeln mit Android Studio


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2016
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.

 
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de