Der Befehl javac: Unterschied zwischen den Versionen
Aus FI-Wiki
Die Seite wurde neu angelegt: „== Der Befehl '''javac''' == Der Befehl '''javac''' ist der Java-Compiler. Er übersetzt den geschriebenen Quellcode (Dateien *.java*) in Bytecode (Dateien *.class*), der später von der Java Virtual Machine ausgeführt werden kann. === Aufgabe des Compilers === Der Compiler übernimmt folgende Schritte: * prüft den Quellcode auf syntaktische Fehler * erzeugt Bytecode aus Java-Dateien * legt für jede Klasse eine eigenständige *.class*-Datei an…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
Der Befehl '''javac''' ist der Java-Compiler. | Der Befehl '''javac''' ist der Java-Compiler. | ||
Er übersetzt den geschriebenen Quellcode (Dateien *.java*) in Bytecode (Dateien *.class*), der später von der Java Virtual Machine ausgeführt | Er übersetzt den geschriebenen Quellcode (Dateien *.java*) in Bytecode (Dateien *.class*), der später von der Java Virtual Machine ausgeführt wird. | ||
=== Aufgabe des Compilers === | === Aufgabe des Compilers === | ||
| Zeile 9: | Zeile 9: | ||
* prüft den Quellcode auf syntaktische Fehler | * prüft den Quellcode auf syntaktische Fehler | ||
* erzeugt Bytecode aus Java-Dateien | * erzeugt Bytecode aus Java-Dateien | ||
* legt für jede Klasse eine | * legt für jede Klasse eine eigene *.class*-Datei an | ||
* verhindert die Ausführung fehlerhafter Programme | * verhindert die Ausführung fehlerhafter Programme | ||
=== Syntax von javac === | === Syntax von javac === | ||
| Zeile 20: | Zeile 18: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Erzeugt: | |||
* '''Dateiname.class''' | * '''Dateiname.class''' | ||
=== Beispiel === | === Beispiel === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac HelloWorld.java | javac HelloWorld.java | ||
| Zeile 33: | Zeile 30: | ||
=== Mehrere Dateien kompilieren === | === Mehrere Dateien kompilieren === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac *.java | javac *.java | ||
| Zeile 40: | Zeile 35: | ||
oder gezielt: | oder gezielt: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac Main.java Datenbank.java Utils.java | javac Main.java Datenbank.java Utils.java | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Ausgabeordner festlegen === | === Ausgabeordner festlegen (Option -d) === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac -d out Main.java | javac -d out Main.java | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die erzeugten *.class*-Dateien liegen danach im Ordner **out**. | |||
* | |||
=== Häufige Compilerfehler === | === Häufige Compilerfehler === | ||
{| class="wikitable" style="width:100%; text-align:center;" | {| class="wikitable" style="width:100%; text-align:center;" | ||
! Fehler | ! Fehler | ||
! Ursache | ! Typische Ursache | ||
|- | |- | ||
| cannot find symbol | | cannot find symbol | ||
| Variable oder | | Variable, Methode oder Klasse existiert nicht / falsch geschrieben | ||
|- | |- | ||
| class not found | | class not found | ||
| Zeile 67: | Zeile 58: | ||
|- | |- | ||
| missing return statement | | missing return statement | ||
| Methode | | Methode mit Rückgabewert enthält kein return | ||
} | |- | ||
| ';' expected | |||
| Semikolon am Ende einer Zeile fehlt | |||
|} | |||
=== Vorteile von javac === | === Vorteile von javac === | ||
* | * Fehler werden vor der Ausführung erkannt | ||
* | * optimierter Bytecode | ||
* ermöglicht plattformunabhängige Programme | * ermöglicht plattformunabhängige Programme | ||
* klare Trennung | * klare Trennung zwischen Quellcode (Java) und Ausführung (JVM) | ||
=== Kurz gesagt === | === Kurz gesagt === | ||
'''javac''' übersetzt Java-Quellcode in Bytecode. | '''javac''' übersetzt Java-Quellcode in Bytecode. | ||
Ohne | Ohne erfolgreiche Kompilierung kann ein Java-Programm nicht starten. | ||
Aktuelle Version vom 14. November 2025, 08:58 Uhr
Der Befehl javac
Der Befehl javac ist der Java-Compiler. Er übersetzt den geschriebenen Quellcode (Dateien *.java*) in Bytecode (Dateien *.class*), der später von der Java Virtual Machine ausgeführt wird.
Aufgabe des Compilers
Der Compiler übernimmt folgende Schritte:
- prüft den Quellcode auf syntaktische Fehler
- erzeugt Bytecode aus Java-Dateien
- legt für jede Klasse eine eigene *.class*-Datei an
- verhindert die Ausführung fehlerhafter Programme
Syntax von javac
Grundbefehl:
javac Dateiname.java
Erzeugt:
- Dateiname.class
Beispiel
javac HelloWorld.java
Ergebnis:
- HelloWorld.class wird erzeugt
Mehrere Dateien kompilieren
javac *.java
oder gezielt:
javac Main.java Datenbank.java Utils.java
Ausgabeordner festlegen (Option -d)
javac -d out Main.java
Die erzeugten *.class*-Dateien liegen danach im Ordner **out**.
Häufige Compilerfehler
| Fehler | Typische Ursache |
|---|---|
| cannot find symbol | Variable, Methode oder Klasse existiert nicht / falsch geschrieben |
| class not found | Dateiname stimmt nicht mit Klassenname überein |
| missing return statement | Methode mit Rückgabewert enthält kein return |
| ';' expected | Semikolon am Ende einer Zeile fehlt |
Vorteile von javac
- Fehler werden vor der Ausführung erkannt
- optimierter Bytecode
- ermöglicht plattformunabhängige Programme
- klare Trennung zwischen Quellcode (Java) und Ausführung (JVM)
Kurz gesagt
javac übersetzt Java-Quellcode in Bytecode. Ohne erfolgreiche Kompilierung kann ein Java-Programm nicht starten.
