Java und javac im Terminal

java-icon

Wir erklären, wie man eine Java-Quellcode-Datei im Terminal kompiliert, die Compiler-Option -d verwendet und wie man ein Programm ausführt.


javac ist der Name des von Java verwendeten Compilers. Er ist Bestandteil eines jeden JDK (Java Development Kit). Gleichzeitig ist es aber auch das Kommando zum Aufruf des Compilers im Terminal, um damit eine Java Quellcode-Datei zu kompilieren. Dabei wird eine Datei mit der Endung .class erstellt, die dann mit Hilfe des JRE (Java Runtime Environment) ausgeführt werden kann.

In gleicher Weise ist java nicht nur der Name der Programmiersprache, sondern auch der Name des Kommandos.

Konkret startet der Befehl java die Java Virtual Machine (JVM), die angegebene Klasse wird geladen und die Methode main() dieser Klasse aufgerufen.

Unser Beispiel

Wir haben für unser Beispiel die obligatorische Hello-World-Datei und als Betriebssystem Ubuntu 22.04 verwendet:

public class App {
    public static void main(String[] args) throws Exception {
        System.out.println("Hello, World!");
    }
}

Im Terminal

Im Terminal wechseln Sie mit dem Kommando cd zunächst in das Verzeichnis, in dem die Datei mit dem Quellcode gespeichert ist.

Für unser Beispiel haben wir bereits im Verzeichnis „java-projects“ für das Projekt selbst den Ordner „hello“ angelegt.

In den Ordner hello wechseln Sie mit:

cd /java-projects/hello

Den Inhalt eines Verzeichnisses kann man sich mit dem Befehl ls anzeigen lassen. In unserem Beispiel beinhaltet das Verzeichnis „hello“ eine Datei: README.md und zwei Unterverzeichnisse: lib und src.

Die Quellcode-Datei mit der Dateiendung .java befindet sich im Unterordner „src“. In dieses Verzeichnis gelangt man also mit dem Kommando:

cd /java-projects/hello/src

Oder – wenn Sie sich bereits im Ordner hello befinden – einfach

cd src

Auch hier zeigt ls den Inhalt an, nämlich die Datei „App.java“, die wir kompilieren möchten. Der Befehl dazu lautet:

javac App.java
Ubuntu Terminal mit dem Kommando: "javac".

Führen sie anschließend erneut den Befehl ls aus, wird zusätzlich die neu erstellte Datei „App.class“ angezeigt. Diese können Sie nun ausführen mit dem Kommando java, gefolgt von dem Dateinamen, aber ohne Datei-Endung.

java App

Und nun sollte „Hello, World!“ im Terminal ausgegeben werden.

Die Compiler-Option -d

Um später bei größeren Projekten eine bessere Übersicht zu behalten, legt man ein separates Verzeichnis für die .class-Dateien an . Üblich ist für dieses Verzeichnis der Name bin (binary). Es liegt im Projekt-Verzeichnis.

Der Befehl javac kann mit verschiedenen Optionen erweitert werden. Für das Anlegen und Speichern der kompilierten Dateien in einem eigenen Verzeichnis dient die Option -d, gefolgt vom Namen des Verzeichnisses.

Für unser Beispiel wechseln Sie in den Projektordner:

cd /java-projects/hello

oder wenn Sie sich noch im Ordner src vom Beispiel oben befinden, wechseln Sie in das nächst höhere Verzeichnis mit

cd ..

Wichtig: ein Leerzeichen zwischen cd und den beiden Punkten.

Von hier aus lautet das Kommando:

javac -d ./bin ./src/App.java

immer in der Reihenfolge:

<befehl> <option> <ziel> <start>

Man benutzt hier jeweils relative Pfadangaben. Der Punkt vor dem Schrägstrich (./bin und ./src) signalisiert, dass die Pfadangabe im aktuellen Ordner (hello) beginnt. Die Pfadangabe vor „App.java“ ist erforderlich, weil wir uns ja aktuell im Verzeichnis hello befinden und der Compiler ohne vorangestellten Pfad nur im aktuellen Verzeichnis sucht.

Nach dem Kompilieren zeigt ls zusätzlich das Unterverzeichnis bin an.

Um das Programm zu starten, wechseln Sie in das Unterverzeichnis.

cd bin

und starten wieder mit

java App

Fazit

All dies erledigt eine IDE (Integrated Development Environment), wie Visual Studio Code, Eclipse oder IntelliJ mit einem Knopfdruck im Hintergrund. Aber auch in einer IDE können Fehler auftreten, die nur mit Kenntnis der grundlegenden Befehle zu beheben sind.