Der Befehl javac: Unterschied zwischen den Versionen

Aus FI-Wiki
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 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 ===
=== 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 eigene *.class*-Datei an   
* legt für jede Klasse eine eigene '''.class'''-Datei an   
* verhindert die Ausführung fehlerhafter Programme   
* verhindert die Ausführung fehlerhafter Programme   



Version vom 15. Dezember 2025, 14:17 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.