I am currently working on an English translation. If you like to help to proofread please contact me: ullenboom ät g m a i l dot c o m.

Java Videotraining Werbung

1. Java ist auch eine Sprache

Viele Einsteiger verfangen sich in der »Tutorial-Hölle«: Sie lesen viel, schauen viele Videos. Wichtig ist jedoch, den ersten Schritt zu machen, und deswegen soll dieses Kapitel Ihnen helfen, die Scheu vor den praktischen Übungen zu verlieren. Wir lernen dabei unsere Entwicklungsumgebung besser kennen, können Programme von der Kommandozeile starten und sehen klarer die Aufgabenteilung zwischen Java-Compiler und Laufzeitumgebung.

Voraussetzungen

  • Aufgabe von Java-Compiler, Bytecode und JVM verstehen

  • Java-Programme auf der Kommandozeile übersetzen können

  • Unterschied zwischen den Programmen java und javac kennen

  • Java-Entwicklungsumgebung aufsetzen und grundlegend bedienen können

1.1. Bytecode und JVM

In den Anfängen von Java war es der übliche Weg für Compiler, eine direkt ausführbare Maschinendatei zu generieren. Sun Microsystems wollte etwas anderes: eine plattformunabhängige Programmiersprache — das führte zu Java. Dazu darf der Compiler keinen Maschinencode mehr erzeugen, sondern der Java-Compiler generiert Bytecode. Dieser Bytecode ist nicht an eine Maschine gebunden. Damit der Bytecode ausgeführt werden kann, müssen eine Laufzeitumgebung und eine Funktionsbibliothek existieren, genannt Java-Laufzeitumgebung (englisch Java Runtime Environment, kurz JRE). Teil der JRE ist die Java Virtual Machine, kurz JVM, die den Bytecode ausführt.

1.1.1. Java-Programme portieren ⭐

Wer mit der Programmierung beginnt, ist bestimmt schon auf einen Klassiker gestoßen: die Hello-World-Ausgabe. Mitte der 1970er-Jahre tauchte dieses kleine Beispiel in einem C-Tutorial auf und wurde seitdem auf unterschiedliche Programmiersprachen übertragen. Obwohl das Programm klein ist, erfüllt es doch einen wichtigen Zweck: zu testen, ob die ganzen Entwicklungstools korrekt installiert sind und funktionieren.

Aufgabe:

Speichere folgendes Programm unter dem Namen Application.java. Achte auf die Groß-/Kleinschreibung.

Listing 1. Application.java
public class Application {
  public static void main( String[] args ) {
    System.out.println( "Aye Captain!" );
  }
}

Wir können nun das Programm mit

$ javac Application.java

compilieren und mit

$ java Application

ausführen.

Fragen:

  • Kann man die Datei Application.class von einem Windows-Rechner auf Linux kopieren und dort mit dem Programm java zur Ausführung bringen?

  • Welche Software muss auf dem Rechner installiert sein?

1.2. Werkzeuge für Java-Entwickler

Die Wahl der Entwicklungsumgebung ist oft vom persönlichen Geschmack abhängig, die Kernaufgaben meistern sie alle gut:

Dieses Aufgabenbuch ist völlig unabhängig von der IDE. Alle Entwickler sollten sich mit den Tastenkürzeln, dem Debugger und den weiteren Tools intensiv beschäftigen. Die Webseiten der Hersteller und YouTube bieten dazu reichlich Material, eine kleine Auswahl:

1.2.1. Fehlermeldungen der IDE kennenlernen ⭐

In diese Aufgabe geht es darum, die Entwicklungsumgebung ein wenig besser kennenzulernen.

Nehmen wir noch einmal das folgende Programm:

Listing 2. Application.java
public class Application {
  public static void main( String[] args ) {
    System.out.println( "Aye Captain!" );
  }
}

Aufgabe:

  • Übertrage Application.java in die IDE.

  • Baue bewusst Fehler in den Programmcode ein, und beobachte die Fehlermeldungen. Einige Vorschläge:

    • Ändere den Dateinamen.

    • Ändere die Groß-/Kleinschreibung, schreibe zum Beispiel Class statt class.

    • Ein Hauptprogramm wird erst dann gestartet, wenn die Klasse eine besondere Methode public static void main(String[] args) hat. Was passiert, wenn die Methode z. B. nicht main heißt, sondern irgendwie anders, z. B. Main oder losgehts?

    • Gebe Umlaute oder Herzchen aus; geht das?

    • Oftmals wird Weißraum eingesetzt, also Leerzeichen (in der Regel kein Tabulator) und Zeilenumbrüche oftmals nach jeder Anweisung. Ist Folgendes so gültig?

      public class Application{public static void main(String[]args){System.out.println("Aye Captain!");}}.