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 Komponenten, JavaBeans und Module
14 Die Klassenbibliothek
15 Einführung in die nebenläufige Programmierung
16 Einführung in Datenstrukturen und Algorithmen
17 Einführung in grafische Oberflächen
18 Einführung in Dateien und Datenströme
19 Einführung ins Datenbankmanagement mit JDBC
20 Einführung in <XML>
21 Testen mit JUnit
22 Bits und Bytes und Mathematisches
23 Die Werkzeuge des JDK
A Java SE-Paketübersicht
Stichwortverzeichnis


Download:

- Beispielprogramme, ca. 35,4 MB


Buch bestellen
Ihre Meinung?



Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenboom

Einführung, Ausbildung, Praxis
Buch: Java ist auch eine Insel


Java ist auch eine Insel

Pfeil 23 Die Werkzeuge des JDK
Pfeil 23.1 Java-Quellen übersetzen
Pfeil 23.1.1 Java-Compiler vom JDK
Pfeil 23.1.2 Alternative Compiler
Pfeil 23.1.3 Native Compiler
Pfeil 23.1.4 Java-Programme in ein natives ausführbares Programm einpacken
Pfeil 23.2 Die Java-Laufzeitumgebung
Pfeil 23.2.1 Schalter der JVM
Pfeil 23.2.2 Der Unterschied zwischen java.exe und javaw.exe
Pfeil 23.3 Mit RoboVM geht’s für Java in das iOS-Land *
Pfeil 23.4 Dokumentationskommentare mit Javadoc
Pfeil 23.4.1 Einen Dokumentationskommentar setzen
Pfeil 23.4.2 Mit dem Werkzeug javadoc eine Dokumentation erstellen
Pfeil 23.4.3 HTML-Tags in Dokumentationskommentaren *
Pfeil 23.4.4 Generierte Dateien
Pfeil 23.4.5 Dokumentationskommentare im Überblick *
Pfeil 23.4.6 Javadoc und Doclets *
Pfeil 23.4.7 Veraltete (deprecated) Typen und Eigenschaften
Pfeil 23.4.8 Javadoc-Überprüfung mit DocLint
Pfeil 23.5 Das Archivformat JAR
Pfeil 23.5.1 Das Dienstprogramm jar benutzen
Pfeil 23.5.2 Das Manifest
Pfeil 23.5.3 Applikationen in JAR-Archiven starten
Pfeil 23.5.4 Pack200-Format *
Pfeil 23.6 Zum Weiterlesen
 

Zum Seitenanfang

23Die 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

23.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

23.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 oder

-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 23.1Optionen des Compilers javac

 

Zum Seitenanfang

23.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 sie 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[ 269 ](Natürlich gibt es da ein Henne-Ei-Problem: Wie sollte ein neuer in Java geschriebener Compiler durch Java übersetzt werden? Daher entsteht der erste Compiler immer in einer anderen Sprache, und die übersetzt eine kleine Teilmenge der Zielsprache, und dann wird ein neuer Compiler in der Minisprache entwickelt. Im nächsten Schritt wachsen und vergrößern sich Grammatik und Compiler. In der Sprache der Compilerbauer heißt der Prozess Bootstrapping. Bei Java war das ein Prozess über mehrere Stufen. Patrick Naughton schreibt im Buch »The Java handbook« dazu: »Arthur van Hoff rewrote the compiler in Oak itself, replacing the C version that James originally wrote.« Und aus Oak wurde später Java. ). Es gibt aber auch Java-Compiler in C(++), wie den GNU Compiler for Java (gcj)[ 270 ](http://gcc.gnu.org/java) oder den Jikes-Compiler[ 271 ](http://tutego.de/go/jikes), doch die beiden letzten Projekte wurden lange nicht aktualisiert und spielen praktisch keine Rolle mehr.

 

Zum Seitenanfang

23.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[ 272 ](das Zurückverwandeln von unstrukturiertem Binärcode in Quellcode ) 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

23.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.

Ein weiteres Tool aus der JDK-Familie ist der javapackager (früher javafxpackager)[ 273 ](http://docs.oracle.com/javase/8/docs/technotes/tools/index.html#javapackager), der native Wrapper mit Bordmitteln erzeugt.

Die Open-Source-Software launch4j (http://launch4j.sourceforge.net) kapselt ein Java-Archiv mit Klassen und Ressourcendateien 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 ist auch eine Insel

Java ist auch eine Insel




Zum Katalog: Java SE 9-Standard-Bibliothek

Java SE 9-Standard-Bibliothek




Zum Katalog: Professionell entwickeln mit Java EE 8

Professionell entwickeln mit Java EE 8




Zum Katalog: Entwurfsmuster

Entwurfsmuster




Zum Katalog: IT-Projektmanagement

IT-Projektmanagement




 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2017

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.

 

[Rheinwerk Computing]



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