Rheinwerk Computing < openbook >


 
Inhaltsverzeichnis
Materialien
Vorwort
1 Java ist auch eine Sprache
2 Imperative Sprachkonzepte
3 Klassen und Objekte
4 Arrays und ihre Anwendungen
5 Der Umgang mit Zeichenketten
6 Eigene Klassen schreiben
7 Objektorientierte Beziehungsfragen
8 Ausnahmen müssen sein
9 Geschachtelte Typen
10 Besondere Typen der Java SE
11 Generics<T>
12 Lambda-Ausdrücke und funktionale Programmierung
13 Architektur, Design und angewandte Objektorientierung
14 Java Platform Module System
15 Die Klassenbibliothek
16 Einführung in die nebenläufige Programmierung
17 Einführung in Datenstrukturen und Algorithmen
18 Einführung in grafische Oberflächen
19 Einführung in Dateien und Datenströme
20 Einführung ins Datenbankmanagement mit JDBC
21 Bits und Bytes, Mathematisches und Geld
22 Testen mit JUnit
23 Die Werkzeuge des JDK
A Java SE-Module und Paketübersicht
Stichwortverzeichnis


Download:

- Listings, ca. 2,7 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 Übersicht
Pfeil 23.1.1 Aufbau und gemeinsame Schalter
Pfeil 23.2 Java-Quellen übersetzen
Pfeil 23.2.1 Der Java-Compiler des JDK
Pfeil 23.2.2 Alternative Compiler
Pfeil 23.2.3 Native Compiler
Pfeil 23.3 Die Java-Laufzeitumgebung
Pfeil 23.3.1 Schalter der JVM
Pfeil 23.3.2 Der Unterschied zwischen java.exe und javaw.exe
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.6 jlink: der Java Linker
Pfeil 23.7 Zum Weiterlesen
 

Zum Seitenanfang

23.2    Java-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.2.1    Der Java-Compiler des 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 die Nutzung von veraltetem Code 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.2    Optionen des Compilers »javac«

 

Zum Seitenanfang

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

Neben dem Java-Compiler des 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[ 285 ](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)[ 286 ](https://web.archive.org/web/20120219133307/http://gcc.gnu.org/java/) oder den Jikes-Compiler[ 287 ](http://tutego.de/go/jikes), doch die beiden letzten Projekte wurden lange nicht aktualisiert und spielen praktisch keine Rolle mehr.

 

Zum Seitenanfang

23.2.3    Native 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 (kurz AOT). 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[ 288 ](Das Zurückverwandeln von unstrukturiertem Binärcode in Quellcode ) angeht.

Existierende Laufzeitumgebungen erreichen mittlerweile eine ausreichende Geschwindigkeit, einen vertretbaren Speicherverbrauch und annehmbare Startzeiten. Um die Startzeiten noch weiter zu reduzieren, bietet die GraalVM Native Image an, ein natives Image zu erzeugen. Details zu dem Projekt bietet http://www.graalvm.org/docs/reference-manual/native-image/.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java ist auch eine Insel Java ist auch eine Insel

Jetzt Buch bestellen


 Buchempfehlungen
Zum Rheinwerk-Shop: Captain CiaoCiao erobert Java

Captain CiaoCiao erobert Java




Zum Rheinwerk-Shop: Java SE 9 Standard-Bibliothek

Java SE 9 Standard-Bibliothek




Zum Rheinwerk-Shop: Algorithmen in Java

Algorithmen in Java




Zum Rheinwerk-Shop: Objektorientierte Programmierung

Objektorientierte Programmierung




 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz

InfoInfo



 

 


Copyright © Rheinwerk Verlag GmbH 2021

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



Cookie-Einstellungen ändern