Der Befehl javac: Unterschied zwischen den Versionen
Aus FI-Wiki
Keine Bearbeitungszusammenfassung |
|||
| (Eine dazwischenliegende Version desselben Benutzers wird 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) in Bytecode (Dateien *.class), der später von der Java Virtual Machine ausgeführt wird. | 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: | ||
| Zeile 12: | Zeile 10: | ||
* verhindert die Ausführung fehlerhafter Programme | * verhindert die Ausführung fehlerhafter Programme | ||
== Syntax von javac == | |||
Grundbefehl: | Grundbefehl: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 21: | Zeile 19: | ||
* '''Dateiname.class''' | * '''Dateiname.class''' | ||
== Beispiel == | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac HelloWorld.java | javac HelloWorld.java | ||
| Zeile 29: | Zeile 27: | ||
* HelloWorld.class wird erzeugt | * HelloWorld.class wird erzeugt | ||
== Mehrere Dateien kompilieren == | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
javac *.java | javac *.java | ||
| Zeile 39: | Zeile 37: | ||
</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 | 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 | ||
| Zeile 64: | Zeile 62: | ||
|} | |} | ||
== Vorteile von javac == | |||
* Fehler werden vor der Ausführung erkannt | * Fehler werden vor der Ausführung erkannt | ||
* optimierter Bytecode | * optimierter Bytecode | ||
| Zeile 70: | Zeile 68: | ||
* klare Trennung zwischen Quellcode (Java) und Ausführung (JVM) | * klare Trennung zwischen Quellcode (Java) und Ausführung (JVM) | ||
== Kurz gesagt == | |||
'''javac''' übersetzt Java-Quellcode in Bytecode. | '''javac''' übersetzt Java-Quellcode in Bytecode. | ||
Ohne erfolgreiche Kompilierung kann ein Java-Programm nicht starten. | 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.
