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
undjavac
kennenJava-Entwicklungsumgebung aufsetzen und grundlegend bedienen können
Noch mehr Aufgaben findest du im Buch: ›Captain CiaoCiao erobert Java: Das Trainingsbuch für besseres Java. 300 Java-Workshops, Aufgaben und Übungen mit kommentierten Lösungen‹
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.
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:
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
stattclass
.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. nichtmain
heißt, sondern irgendwie anders, z. B.Main
oderlosgehts
?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!");}}.
Noch mehr Aufgaben findest du im Buch: ›Captain CiaoCiao erobert Java: Das Trainingsbuch für besseres Java. 300 Java-Workshops, Aufgaben und Übungen mit kommentierten Lösungen‹