Springe zum Inhalt

Lektion 2: Hello World – Wir schreiben unser erstes Java-Programm

Im ersten Tutorial haben wir unser JDK installiert und erinnern uns, dass uns unter anderem damit Bibliotheken, der Java-Compiler sowie die Java Runtime Environment (JRE) zur Verfügung stehen. In dieser Lektion widmen wir uns einen genaueren Blick in das Zusammenspiel dieser Komponenten und schreiben unser erstes kleines Programm. Anschließend kompilieren wir es mithilfe des Java-Compilers und führen es mittels unserer JRE aus.

Der Editor

Sicherlich kennt jeder die typischen Szenen in Hollywood-Blockbustern wo eine vermummte Person in einem dunklen Raum vor mindestens 4 Monitoren sitzt und lustige Dinge in grüner Schrift in ein schwarzes Fenster tippt. Glückwunsch! Heute dürfen wir uns selbst zumindest ein wenig so fühlen. Für unser erstes Programm nutzen wir nämlich noch keine Entwicklungsumgebung (IDE). Wir machen es Oldschool mit einem bereits installierten Text-Editor und führen das Programm rein mit der Eingabeaufforderung/ Konsole aus.

Wir schreiben ein simples Programm, welches einfach nur "Hello World!" in unserer Konsole ausgibt. Öffnet hierzu als erstes einen simplen vorinstallierten Text-Editor eurer Wahl. Ich verwende hierbei "Notepad". Schreibt oder kopiert folgendes Stück Code in euer Dokument:

public class HelloWorld {
  public static void main(String[] args) {
    System.out.print("Hello World!");
  }
}

Bis hierhin wollen wir noch nicht weiter auf den Code eingehen. Dies behandeln wir in der nachfolgenden Lektion. Speichert nun euer Dokument an einem beliebigen Ort. Ich empfehle euch für die Ordnung je Lektion ein separates Verzeichnis (z.B. "Lektion 1") in einem Oberverzeichnis (z.B. "Jartorial - Java") zu erzeugen. Wichtig ist, dass die Datei den gleichen Namen wie unsere Klasse und die Endung ".java" trägt. In unserem Fall also "HelloWorld.java".

Unsere erzeugte .java-Datei

Die Dateiendung .java besagt, dass es sich bei unserer Datei um eine Programmdatei handelt, die in der Programmiersprache Java geschrieben wurden. Dies ist wichtig für unseren nächsten Schritt: Die Umwandlung in für die Java Virtual Machine (JVM) lesbaren Bytecode mithilfe des Java-Compilers.

Der Java-Compiler

Zum Zeitpunkt der Ausführung unseres Programms ist die JVM nicht in der Lage den von Menschen geschriebenen Code zu interpretieren. Sie erwartet dafür validen Bytecode. Hier kommt unser Java-Compiler ins Spiel. Der Java-Compiler liest den Quellcode aus .java-Dateien, erzeugt eine neue Datei die auf .class endet und schreibt den erzeugten Bytecode dort hinein. Der Java-Compiler kann seine Arbeit nur dann erfolgreich verrichten, wenn der übergebene Quellcode valide ist. Er prüft sozusagen den Quellcode auf seine Grammatik. Man nennt dieses Regelsystem in der Programmierung auch Syntax. So gut wie jede Programmiersprache bringt eine komplett eigene Syntax mit sich. So würde ein Hello-World-Programm in der Programmiersprache C# zum Beispiel so aussehen:

class HelloWorld
{
    public static void Main()
    {
        System.Console.WriteLine("Hello World!");
    }
}

Zum Kompilieren unseres Programms öffnen wir als erstes unsere Eingabeaufforderung. Als nächstes navigieren wir in das Verzeichnis unserer .java-Datei. Dazu geben wir den Befehl "cd <Laufwerk>\<Zielverzeichnis>" ein und bestätigen diesen mit Enter.

Mit dem command "cd" könnt ihr in verschiedene Verzeichnisse navigieren

Als nächstes starten wir mit dem Befehl "javac" den Java-Compiler und verweisen auf unsere zu kompilierende .java-Datei. Anschließend bestätigen wir auch diesen Befehl erneut mit Enter.

Mit dem command "javac" starten wir den Java-Compiler

Nun sollte in dem gleichen Verzeichnis eure .class-Datei zu sehen sein:

Die vom Java-Compiler erzeugte .class-Datei

Die Java Virtual Machine (JVM)

Nun da wir unsere Programmdatei kompiliert und den Bytecode haben, wollen wir diesen der JVM zum Ausführen übergeben. Die Aufgabe der JVM als Teil der Java Runtime Environment (JRE) ist es, Bytecode in eine für den Computer verständliche Sprache (Maschinensprache) zu interpretieren. Dazu nutzen wir wieder unsere Eingabeaufforderung und gehen wieder von unserem gleichen Verzeichnis aus. Mit dem Befehl "java HelloWorld" führen wir unser Programm aus. Dabei übergeben wir der JVM die auszuführende Klasse (in unserem Fall "HelloWorld"). In dieser Klasse erwartet die JVM eine Methode namens "main" (nachfolgend grün markiert). Was Klassen und Methoden sind erfahren wir in nachfolgenden Lektionen. Der JVM muss also immer bewusst gemacht werden wo sie zu starten hat. Java-Programme beginnen in der Regel immer in der main-Methode.

public class HelloWorld {
  public static void main(String[] args) {
    System.out.print("Hello World!");
  }
}

In der Konsolenausgabe sollte nun unser Ausgabetext "Hello World!" stehen:

Mit dem command "java" führen wir unser Programm aus