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 |
||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Der Befehl '''javac''' ist der Java-Compiler. | Der Befehl '''javac''' ist der Java-Compiler. | ||
Er übersetzt den geschriebenen Quellcode (Dateien *.java | 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: | Der Compiler übernimmt folgende Schritte: | ||
* 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 == | |||
Grundbefehl: | Grundbefehl: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 20: | Zeile 16: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Erzeugt: | |||
* '''Dateiname.class''' | * '''Dateiname.class''' | ||
== Beispiel == | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac HelloWorld.java | javac HelloWorld.java | ||
| Zeile 32: | Zeile 27: | ||
* HelloWorld.class wird erzeugt | * HelloWorld.class wird erzeugt | ||
== Mehrere Dateien kompilieren == | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac *.java | javac *.java | ||
| Zeile 40: | Zeile 33: | ||
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 (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 == | |||
{| 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 56: | ||
|- | |- | ||
| 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 == | |||
* | * 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 == | |||
'''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 12. Januar 2026, 13:37 Uhr
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.
