Der Befehl javac

Aus FI-Wiki
Version vom 14. November 2025, 08:56 Uhr von Moettke (Diskussion | Beiträge) (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…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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
  • verhindert die Ausführung fehlerhafter Programme

Ohne erfolgreichen Compilerlauf kann ein Java-Programm nicht gestartet werden.

Syntax von javac

Grundbefehl:

javac Dateiname.java

Dabei entsteht eine Bytecode-Datei:

  • Dateiname.class

Beispiel

Quellcode kompilieren:

javac HelloWorld.java

Ergebnis:

  • HelloWorld.class wird erzeugt

Mehrere Dateien kompilieren

Wenn ein Projekt mehrere Klassen enthält, können sie zusammen kompiliert werden:

javac *.java

oder gezielt:

javac Main.java Datenbank.java Utils.java

Ausgabeordner festlegen

Mit dem Parameter -d kann festgelegt werden, in welchen Ordner die *.class*-Dateien gespeichert werden:

javac -d out Main.java

Ergebnis:

  • Bytecode befindet sich im Ordner **out**

Häufige Compilerfehler

Fehler Ursache
cannot find symbol Variable oder Methode ist nicht definiert
class not found Dateiname stimmt nicht mit Klassenname überein
missing return statement Methode hat keinen Rückgabewert angegeben

}

Vorteile von javac

  • findet Fehler vor der Ausführung
  • erzeugt optimierten Bytecode
  • ermöglicht plattformunabhängige Programme
  • klare Trennung von Entwicklung (Quellcode) und Ausführung (Bytecode)

Kurz gesagt

javac übersetzt Java-Quellcode in Bytecode. Ohne javac gibt es keine *.class*-Dateien und damit kein ausführbares Java-Programm.