Teil 1: Jump-Start in Java, Systemvoraussetzungen und Entwicklungsumgebung

Das Java-Tutorial für Einsteiger: Professionell von Beginn an!

Dr. Veikko Krypczyk, Olena Bochkor

(c) Shutterstock / Curioso

Dieses Java-Tutorial führt Sie Schritt für Schritt in die Programmierung mit Java ein. Der Kurs richtet sich an den anspruchsvollen Einsteiger, der daran interessiert ist, Java-Anwendungen jenseits des „Hello-World“ zu programmieren. Anhand einer durchgängigen GUI-Beispielanwendung werden die wichtigsten Programmierkonzepte, Sprachkonstrukte und Werkzeuge in einem professionellen Setting vorgestellt.

Das Java-Tutorial für Einsteiger

Es gibt unterschiedliche Ansätze und Vorgehensweisen, eine Programmiersprache oder das Programmieren an sich zu erlernen. Die beste Methode ist diejenige, die den Lernwilligen möglichst gut bei seinen Vorkenntnissen abholt und sich von Anfang an an dessen konkreten Bedürfnissen orientiert. Einführungskurse in die Sprache Java gibt es viele – offline in Form von Büchern oder auch online. Hier präsentieren wir Ihnen ein Java-Tutorial für den anspruchsvollen Einsteiger.

Teil 1: Jump-Start in Java, Systemvoraussetzungen und Entwicklungsumgebung

Warum Java?

Die Bedeutung der Programmiersprache Java ist seit vielen Jahren konstant hoch. Dafür gibt es eine Reihe von Gründen, welche auch für die aktuelle Version von Java noch uneingeschränkt zutreffen. Einige wichtige sind:

  • Plattformübergreifende Programmentwicklung: Java läuft auf fast allen Betriebssystemen und Systemumgebungen. Die Programmiersprache ist auf Betriebssystemen für den Server, für Microsoft Windows, Linux und Mac OS und für mobile Geräte verfügbar.
  • Breite Anwendungspalette: Mit Java lassen sich so ziemlich alle Arten von Anwendungen erstellen. Von der App bis zur Desktop-Applikation, vom Web-Dienst bis hin zum Plug-in. Mit Ausnahme sehr systemnaher Programme wie Hardwaretreiber kann man in Java fast jede Art von Software realisieren.
  • Moderner Sprachansatz: Java ist eine moderne Programmiersprache. Neuste Konzepte haben den Weg direkt in Java gefunden bzw. lassen sich ohne Probleme über Bibliotheken nachrüsten.
  • Vielfältige Werkzeugunterstützung: Vom einfachen Texteditor bis hin zur komfortablen Entwicklungsumgebung hat der Entwickler die Qual der Wahl. Die Vielfalt der Werkzeuge sorgt für Konkurrenz, um den Entwickler bestmöglich zu unterstützen.
  • Freie Verfügbarkeit: Compiler und Software-Development-Kit (SDK) stehen für alle gängigen Systeme zum freien Download bereit und sind in wenigen Augenblicken installiert und einsatzbereit.
  • Breite Community: Wer in Java entwickelt, findet zu allen wichtigen Fragen vielfältige Unterstützung in der Community.

Gerade in der letzten Zeit erfährt Java wieder einen guten Zustrom. Der Grund sind Applikationen für mobile Geräte, auf welchen das Betriebssystem Android läuft. Apps für Android werden in Java programmiert. Zwar kommt zusätzlich eine eigene Systemschnittstelle (API) zum Einsatz, um die Besonderheiten der mobilen Devices abzudecken, doch die Sprache im Hintergrund bleibt Java. Die eingesetzten Werkzeuge und das Vorgehen sind dem versierten Java-Entwickler auch bestens vertraut.

Grund genug, eine Einführung in Java zu präsentieren. Diese richtet sich an Umsteiger von einer anderen Programmiersprache oder an Neueinsteiger, die sogleich professionell – jenseits von „Hello World“ – starten möchten. In diesem ersten Teil des Online-Tutorials erfahren Sie:

  • Was ist Java: Wir erklären, wie ein Java-Programm für die unterschiedlichen Systeme grundsätzlich erstellt wird.
  • Die Systemvoraussetzungen herstellen: Bevor man mit dem Programmieren beginnen kann, ist Java in der Entwicklungsversion zu installieren. Dank vorgefertigter Pakete ist dies kein Hexenwerk.
  • Werkzeugunterstützung: Ein Handwerker ist nur so gut wie seine Werkzeuge. Das gilt auch für die Softwareentwicklung. Es geht um die Auswahl und Installation einer integrierten Entwicklungsumgebung (IDE).
  • Professionell starten: Um gleich professionell mit der Entwicklung einzusteigen, ergibt es viel Sinn, eine Versionsverwaltung zu installieren bzw. darauf einen Onlinezugriff einzurichten.
  • Erstes Programm: Mit Hilfe des Assistenten erzeugen wir den Rahmen einer ersten Java-Anwendung und können diese bereits ausführen.

Los geht es, lassen Sie uns anfangen!

Java-Tutorial für Einsteiger: Professionell von Beginn an!

java tutorialDieses Java-Tutorial führt Sie Schritt für Schritt in die Programmierung mit Java ein. Anhand einer durchgängigen GUI-Beispielanwendung werden die wichtigsten Programmierkonzepte, Sprachkonstrukte und Werkzeuge in einem professionellen Setting vorgestellt.

  • Teil 1: Jump-Start in Java, Systemvoraussetzungen und Entwicklungsumgebung
  • Teil 2: Die wichtigsten Sprachmerkmale
  • Teil 3: Objektorientierte Programmierung mit Java
  • Teil 4: Entwicklung moderner Benutzeroberflächen

Java-Basics: Vom Programmcode zum ausführbaren Programm

Das Prinzip der Erstellung eines Java-Programms wird am einfachsten deutlich, wenn man auf die folgende Abbildung blickt:

Abbildung_1

Abbildung 1: Vom Quellcode zum ausführbaren Programm, Darstellung in Anlehnung an [1].

Java-Quellcode kann mit einem beliebigen Texteditor oder, wie in der Praxis üblich, mit einer umfassenden und komfortablen IDE (Integrated Development Envoronment) erstellt werden. Der Quellcode wird von einem Compiler in den so genannten Zwischencode (Java-Bytecode) überführt, welcher später in der jeweiligen virtuellen Maschine auf dem Zielbetriebssystem ausgeführt wird.

Java-Programme laufen also nicht nativ auf dem Rechner, sondern werden stets in einer Art „Sandbox“ ausgeführt. Diese Sandbox, oder auch Java Virtual Machine (JVM) genannt, kümmert sich um die plattformspezifische Umsetzung. Der Anwender muss nichts weiter tun, als Java in der Laufzeitversion (Java Runtime Environment, JRE) auf seinen Rechner zu installieren, und schon können in Java geschriebene Programme ausgeführt werden. In den meisten Fällen ist von Hause aus bereits eine Java-Version installiert.

Durch die Wahl dieses Ansatzes braucht der Programmierer weitgehend keine Besonderheiten des Zielsystems zu berücksichtigen, auf dem seine Anwendung laufen soll, denn er kodiert gegen eine systemübergreifende Bibliothek. Die konkrete Umsetzung auf die Zielplattform, z.B. die grafische Benutzeroberfläche (UI), erledigt die Java-VM. Diese Aussage muss man natürlich etwas einschränken, denn komplexe Programme, welche systemspezifische Funktionen nutzen, bedürfen dennoch an der einen oder anderen Stelle die explizite Anpassung an das Zielbetriebssystem.

Systemvoraussetzungen herstellen

Bei Java muss man zwischen der Laufzeit- und der Entwicklungsumgebung unterscheiden. Auf den meisten Rechnern dürfte, unabhängig vom Betriebssystem, eine Laufzeitumgebung von Java (Java Runtime Environment, JRE) vorhanden sein. Zum Entwickeln eigener Programme benötigen wir jedoch das Java Development Kit (JDK). Dieses können Sie unter [2] für ihr Betriebssystem (Microsoft Windows, Linux oder Mac OS) herunterladen. Achten Sie neben dem richtigen Betriebssystem auch darauf, ob Sie eine 32- oder 64-Bit-Variante benötigen. Java liegt aktuell in der Version 8 vor. Laden Sie das JDK für Ihr spezifisches System und installieren Sie es. Nach der Installation kann man auf der Kommandozeile bzw. im Terminal mit Hilfe von

javac -version

die korrekte Installation und die Version überprüfen:

Abbildung_2

Abbildung 2: Anzeige der JDK-Version auf der Kommandozeile.

Damit hat man die Voraussetzungen für das Übersetzen von Java-Anwendungen auf dem System geschaffen. Bitte achten Sie darauf, als Befehl javac -version einzugeben. Demgegenüber wird mittels java -version nur das Vorhandensein der Laufzeitumgebung geprüft! Wie gesagt, diese genügt um Programme auszuführen; um jedoch selbst zu entwickeln, wird das SDK gebraucht.

Eclipse, IntelliJ, NetBeans: Die Entwicklungsumgebung

Es ist sinnvoll, von Anfang an eine „richtige“ Entwicklungsumgebung anzuwenden. Experimente mit einem Texteditor und das Aufrufen des Java-Compilers über die Kommandozeile sind zwar möglich, sind für das ernsthafte Arbeiten mit Java jedoch nicht zu empfehlen. Für die Programmierung von Java-Anwendungen stehen eine Reihe unterschiedlicher IDEs zur Verfügung. Bekannte, unter allen üblichen Betriebssystemen lauffähige Werkzeuge sind:

  • Eclipse: Hier handelt es sich um eine universelle IDE für eine Vielzahl von Sprachen. Java wird direkt unterstützt. Mit Hilfe von Plug-ins kann man Eclipse sehr gut an seine Vorstellungen anpassen [3].
  • IntelliJ IDEA: IntelliJ ist eine IDE des Softwareunternehmens JetBrains für die Programmiersprache Java. Eine kostenfreie Standardversion ist verfügbar [4].
  • NetBeans: Diese IDE wurde hauptsächlich für die Programmiersprache Java entwickelt. Sie unterstützt jedoch auch C, C++ und dynamische Programmiersprachen. Sie kann ebenfalls kostenfrei heruntergeladen werden [5].

Auf dem Markt sind weitere IDEs, welche spezielle Vorzüge oder Anpassungen an bestimmte Entwicklungsvorhaben bieten. Es wäre müßig, an dieser Stelle über die Vor- und Nachteile jeder IDE zu referieren. Gerade für den Einstieg sollten Sie jedoch ein besonderes Augenmerk auf die Arbeit dem mit GUI-Builder (Designer) legen. Ein komfortabler Designer kann die Gestaltung der Benutzeroberflächen vereinfachen. Die Empfehlung lautet daher: Probieren Sie es aus, Sie werden Ihr Lieblingswerkzeug finden!

Für den Einstieg ist jede IDE gleichermaßen geeignet. Letztendlich verwenden wir in diesem Kurs NetBeans.

Abbildung_3

Abbildung 3: NetBeans erscheint im Look einer IDE mit vielen frei konfigurierbaren Fenstern.

Gleichgültig, für welche IDE Sie sich entschieden haben: Diese muss vor ihrer Verwendung installiert werden. Wie beim JDK für Java gilt auch hier, dass die jeweiligen Projektwebseiten fertige Installationspakete zum Download bereithalten. Dieses gilt i.d.R. für alle Betriebssysteme und Varianten. Auch unter Linux ist es empfehlenswert, die aktuelle Version der IDE von der jeweiligen Produktwebseite herunterzuladen, denn die Repositories der Distributionen sind nicht immer auf dem neusten Stand. Die Installation ist nicht komplexer als die Einrichtung anderer Software, ggf. muss beim ersten Start noch der Pfad zum JDK angeben werden, sofern die IDE diesen nicht selbstständig erkennt.

Nach diesen vorbereitenden Maßnahmen kann es auch schon direkt losgehen. Holen Sie sich einen Kaffee und machen Sie sich bereit für ein erstes Java-Programm!

Git, GitHub & Co.: Die Versionsverwaltung

Softwareentwicklung ist ein stetig fortschreitender Prozess. Anwendungen werden nicht in einem Zug entwickelt, sondern schrittweise erstellt. Dabei kommt es auch vor, dass man aufgrund von Fehlern auf frühere Arbeitsstände zurückgreifen muss. Ebenso ist Programmierung meist Teamarbeit. Sobald Projekte eine bestimmte Größe und Komplexität überschritten haben, arbeitet man gemeinsam an einer Anwendung. Für diese und ähnliche Aufgaben setzt man Versionskontrollsysteme ein.

Änderungen können nachverfolgt oder zurückgenommen werden. Mehrere Entwickler können an einer eigenen lokalen Kopie des Quellcodes arbeiten und diesen dann später mit Hilfe des Versionskontrollsystems (automatisiert) zusammenfügen.

Lagert man ein solches Versionskontrollsystem in die Cloud aus, so hat man nicht nur keinen Aufwand für die Bereitstellung der Infrastruktur, sondern man wird sogleich räumlich flexibel. Über das Internet kann man jederzeit den aktuellen Stand des Projektes in Form des Quellcodes herunterladen und daran weiterarbeiten.

Ein bekanntes Online-Versionskontrollsystem ist GitHub [6]. GitHub ist ein webbasierter Online-Dienst, der Software-Entwicklungsprojekte auf seinen Servern bereitstellt. Namensgebend war das Versionsverwaltungssystem Git. Es empfiehlt sich also gleich zu Beginn, ein Konto bei einem solchen Online-Dienst anzulegen. Die Arbeit wird damit sofort deutlich professioneller. Wir empfehlen GitHub. Sofern man mit der öffentlichen Verfügbarkeit seines Projektes kein Problem hat, ist die Nutzung auch kostenfrei. Für geschlossene Projekte fällt andererseits ein Entgelt an.

Nachfolgend gehen wir von GitHub aus. Verwenden Sie ein anderes System, so müssen Sie ggf. an der einen oder anderen Stelle die Schritte ein wenig anpassen. Gleichwohl muss man auch die Versionsverwaltung Git lokal auf dem Rechner installieren. Installationspakete für die unterschiedlichen Betriebssysteme findet man unter [7]; unter Linux u.a. direkt über die Paketverwaltung. NetBeans unterstützt Git und GitHub direkt, d.h. aus der IDE heraus kann unmittelbar mit der Versionsverwaltung gearbeitet werden. Bei anderen IDEs ist es ähnlich, ggf. muss man zuvor noch ein Plug-in installieren.

Warmlaufen: Das erste Java-Programm

Wir sind soweit! Eine erste Java-Anwendung soll erstellt werden. Wir wollen auch hier gleich „größere Brötchen backen“ und starten direkt mit einer GUI-Applikation. Ein textbasiertes „Hello-World“ schenken wir uns. Wer möchte, kann ja zu Beginn diese Zeichenkette in einem Label darstellen 🙂

Bevor man mit der Programmentwicklung beginnt, ist es notwendig, sich zuvor ein paar Gedanken über die zu entwickelnde Software zu machen. Unser Ziel ist es, einen Generator zum Erzeugen von Begriffswolken zu erstellen (Word-Cloud-Generator). Mit Hilfe einer solchen Begriffswolke kann man sehr gut eine Veranstaltung oder ein Seminar moderieren. Ein Beispiel findet man u.a. unter [8].

In einem eigenen Tool kann man neue Ideen verwirklichen, zudem bietet es genügend Ansatzpunkte für uns, die wesentlichen Bereiche der Java-Programmierung einzuüben, zum Beispiel:

  • Programmstruktur
  • Aufbau der Benutzeroberflächen
  • Grafische Darstellung
  • Datenverwaltung, Speicherung und Laden
  • Erstellung von Algorithmen für die Anordnung der Wörter.

Es gibt also genügend zu tun! Einen Prototyp des UI haben wir schnell entworfen. Dazu kann man beispielsweise das Tool Pencil verwenden [9], welches ebenfalls für alle bekannten Betriebssysteme zur Verfügung steht.

Abbildung_4

Abbildung 4: Entwurf des UI mit Pencil.

 

Nachdem wir eine Vorstellung über das künftige Aussehen unserer Anwendung entwickelt haben, kann es losgehen. Starten Sie die IDE. NetBeans (andere Entwicklungsumgebungen ebenso) unterstützen das Anlegen eines Projektes mit Hilfe eines Assistenten.

Abbildung_5

Abbildung 5: Mit Hilfe des Assistenten wird eine neue Java-Applikation erstellt.

Im nächsten Schritt des Dialogfeldes benennen wir das Projekt, wir haben uns für den Namen „WordCloud“ entschieden. Der Assistent von NetBeans erzeugt bereits eine startfähige Applikation. Wenn man diese ausführt (grüner Pfeil in der Werkzeugleiste), wird man aber noch nichts sehen, denn wir müssen zunächst ein erstes Fenster hinzufügen und dieses nach unseren Vorstellungen gestalten. Auf der linken Seite in NetBeans sehen wir den Projektbaum. Um sogleich etwas Struktur zu erhalten, erzeugen wir unterhalb des Ordners Quellpakete einen Unterordner ui. In diesem sollen später die Formulare gespeichert werden. Über das Kontextmenü auf dem neuen Ordner wählen wir Neu|jFrame-Formular.

Abbildung_6

Abbildung 6: Zum Projekt wird ein neues Formular hinzugefügt.

 

Dabei handelt es sich um ein leeres Fenster, in welchem wir später unsere Programmoberfläche gestalten. In einem Dialogfeld werden wir aufgefordert, dem Formular einen Namen zu geben, zum Beispiel MainFrame. NetBeans erzeugt danach den zugehörigen Quellcode, und wir sehen in der IDE ein leeres Formular.

Abbildung_7

Abbildung 7: Ein leeres Formular als Basis unserer Anwendung.

 

Beim Ausführen der Applikation sehen wir indes immer noch nichts. Das Programm weiß nämlich immer noch nicht, dass es beim Start das Hauptformular anzeigen soll. Das ändern wir sofort und wählen über den Projektbaum die Datei WordCloud.java. Diese Datei enthält die Methode main (was Methoden sind, werden wir später noch erklären), welche bei jedem Start der Anwendung als erstes ausgeführt wird. Diese Methode ergänzen wir um folgenden Quellcode:

public class WordCloud {
    public static void main(String[] args) {
        // TODO code application logic here
        MainFrame frame=new MainFrame();
        frame.setTitle("Word Cloud");
        frame.setSize(1000, 620);
        frame.setResizable(false);
        frame.setLocation(50, 50);
        frame.setVisible(true);
    }
}

Hinterfragen Sie jetzt noch nicht jede Zeile – wir werden uns den einzelnen Sprachelementen von Java noch ausführlich widmen. Dieser Codeausschnitt sorgt dafür, dass eine Instanz des Formulars MainFrame erzeugt und angezeigt wird.

Abbildung_8

Abbildung 8: Erfassen des Quellcodes in der IDE.

 

Starten wir jetzt die Applikation, so kompiliert NetBeans die Anwendung und zeigt uns ein leeres Fenster.

Abbildung_9

Abbildung 9: Die erste Java-Anwendung.

Glückwunsch, Sie haben Ihre erste Java-Applikation erstellt!

Zusammenfassung und Ausblick

Wie geht es weiter? Wir müssen unsere Programmoberfläche gemäß unseren Vorstellungen gestalten. Hier dürfen Sie schon mal experimentieren, wenn Sie mögen… Ebenso sollten wir uns bald darum kümmern, das Projekt an die Versionsverwaltung anzukoppeln. Um die Funktionalität zu realisieren, müssen wir uns mit der Sprache Java intensiver auseinandersetzen. Schritt für Schritt wird unsere Anwendung entstehen. Folgen Sie unserem Tutorial demnächst hier mit dem zweiten Teil. Wer neugierig ist, findet das Projekt unter [9] auf GitHub in einen etwas fortgeschrittenen Arbeitsstand.

Mitarbeit ist ausdrücklich erwünscht!

Hier geht’s zum Teil 2 des Tutorials: Javas wichtigste Sprachmerkmale

Geschrieben von
Dr. Veikko Krypczyk
Dr. Veikko Krypczyk
Dr. Veikko Krypczyk studierte und promovierte in Betriebswirtschaftslehre mit dem Schwerpunkt Wirtschaftsinformatik. Er ist Entwickler und Fachautor. Aktuell beschäftigt er sich mit der App-Programmierung für Windows Phone und Android.
Olena Bochkor
Olena Bochkor
Olena Bochkor studierte Betriebswirtschaftslehre u. a. mit dem Schwerpunkt Wirtschaftsinformatik. Weitere Informationen zu diesen und anderen Themen der IT finden Sie unter http://it-fachartikel.de.
Kommentare
  1. Michael2016-12-07 14:01:56

    Abbildung 1 erscheint fehlerhaft. Eine JVM für Windows wird auf einem Linux System kein Programm starten. Natürlich wird auch keine JVM für Windows auf einem Mac OS ein Programm starten.

  2. Kypriani Sinaris2016-12-08 09:18:28

    Hallo Michael! Das stimmt natürlich und wird korrigiert :)

  3. Michael2016-12-08 12:15:36

    Der Java Kurs für Einsteiger gefällt mir sehr gut:-) War nur ein kleiner Hinweis ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.