1. Einführung

Um Java-Programme zu schreiben, braucht man zwei Dinge:

  • Ein JDK (Java Development Kit)
  • Einen Texteditor (“Code-Editor”)

Normalerweise nutzt man eine IDE (Integrated Development Environment) für Java-Entwicklung. Das ist ein Texteditor, der speziell für Entwicklung in einer bestimmten oder mehreren Sprachen ausgelegt ist. Rein theoretisch kann man so ziemlich jeden Texteditor verwenden, aber persönlich empfehle ich IntelliJ Idea.  IntelliJ Idea hat eine kostenlose Community-Version, aber Schüler und Studenten können sich mit ihrer Bildungs-Email für die Premium-Version “IntellJ Idea Ultimate” anmelden.

Anmerkung 1.0.1:

Die Hauptunterschiede zwischen der Ultimate und Community sind, dass man in der Ultimate bequemer mit anderen Programmiersprachen und mit SQL-Datenbanken arbeiten kann. Außerdem kann man wie in manchen Textverarbeitungsprogrammen dann simultan zusammenarbeiten. 

Anmerkung 1.0.2:

Das ONG ist von mir bei JetBrains als Bildungseinrichtung eingetragen worden, also könnt ihr euch mit eurer @student.ong.berlin-Adresse einfach registrieren, falls ihr gern Idea Ultimate wollt.

2. Installation von JDK und Idea

2.1 Installation vom JDK

Java wurde von Sun Microsystems entwickelt, welche 2010 von Oracle verkauft wurden. Deshalb kann Java einfach auf der offiziellen Java-Webseite java.com heruntergeladen werden. 
Nein. Aus verschiedenen Gründen: Fuck Oracle. Man sollte Java und ein JDK heutzutage auf gar keinen Fall direkt von Oracle bzw. java.com beziehen. Die beste und vertrauenswürdige Quelle ist aktuell Adoptium Temurin von der Eclipse Foundation, ehemalig AdoptOpenJDK. Auf deren Download-Section findet man alle möglichen Versionen für alle möglichen Betriebssysteme. 

Exkurs 2.1.1: Was soll ich runterladen

1. Bei Package Type / Pakettyp “JDK” auswählen
2. Bei Architektur x64 (64-bit) oder x86 (32-bit) wählen, außer bei Macs mit Apple Silicon (M1, M2), dann braucht man aarch64
3. Bei Betriebssystem das richtige Betriebssystem auswählen, duh
4. Bei der ausgewählten Version die  .pkg bzw. .msi Datei herunterladen
Zur Version siehe Anmerkung 2.1.2

Exkurs 2.1.2: Das Ding mit den Java-Versionen

Die aktuellste Version (während ich das hier schreibe), ist Java 20 und Java 21 kommt bald.
Kurzer Exkurs: Manche Versionen von Java sind sog. LTS (= Long Term Support) Versionen, der Name sollte selbsterklärend sein
Man sollte im Allgemeinen meistens eine LTS-Version wählen. Java 8 ist am Weitesten verbreitet, obwohl es so alt ist. 
Java 11 ist halbwegs modern und wird neben 8 am Meisten für Desktop-Apps verwendet. Persönlich verwende ich 17 und würde auch nicht empfehlen, eine neuere Version zu installieren. Ich würde hier 17 empfehlen, aber 8 und 11 sind immer eine Möglichkeit.

Sobald die Installation abgeschlossen ist, öffne ein Terminal, um die Installation zu überprüfen. Dort einfach java -version eintippen und Enter drücken. Das sollte dann ungefähr so aussehen:

2.2 Installation von Idea

Der einfachste Weg JetBrains IDEs zu installieren ist via JetBrains Toolbox. Dort kann man alle JetBrains IDEs installieren und aktualisieren. Sollte man Idea Ultimate wollen, muss man sich erst in den Einstellungen mit seinem JetBrains Konto anmelden.

3. Grundlegende Verwendung von IDEA

Anmerkung 3.0.1

In allen folgenden Beispielen wird Idea Ultimate verwendet. Es sollte aber keine Unterschiede zur Community-Version geben.

Beim ersten Start begrüßt uns IntelliJ mit einem Startfenster:


Rechts unter Plugins kann man optional Plugins wie zusätzliche Farbschemen, Support für andere Sprachen / Tools und Integrationen mit externen Programmen wie Github Copilot installieren. Unten links kann man optional das neue UI aktivieren, welches aktuell noch in der Beta ist. Das kann ich sehr empfehlen, denn das neue Interface ist viel einfacher. Sobald dies aktiviert wurde, startet IntelliJ neu.
 

3.1 Das erste Projekt

Nun ist es Zeit, ein Projekt anzulegen, damit mit dem Programmieren begonnen werden kann. Das ist natürlich etwas komplizierter als bei Greenfoot, lohnt sich aber später dann noch. Wenn man auf den “New Project” Button drückt, öffnet sich folgendes Pop-up:

Dort muss man jetzt einige Einstellungen vornehmen:
1. Bei “Build system” “Gradle” auswählen
2. Bei JDK das mit der Version 17 auswählen (evntl. sind mehrere installiert)
3. Die “Advanced Settings” ausklappen
4. Oben bei dem Projektnamen einen Namen eingeben. Projekte werden meist in PascalCase benannt (Siehe Exkurs 3.1.1)
5. Bei “Artifact ID” das gleiche wie bei Name eingeben
6. Bei Group-Id eine Group-Id + .den Projektnamen in Kleinbuchstaben eingeben (Siehe Exkurs 3.1.2) 

Exkurs 3.1.1: Benennungsarten

Es gibt verschiedene Arten, Dinge in der Programmierung zu benennen.
Die wichtigsten finden sich hier: https://www.freecodecamp.org/news/programming-naming-conventions-explained/
Das ist übrigens eine der wichtigeren Prinzipien, auf die dort genannten Namen werde ich bzw. anderweitige Tutorials noch zurückkommen..

Exkurs 3.1.2: Group-Ids / Package-Ids

Code in Java wird in Module, sogenannte Packages gegliedert. Um zu verhindern, dass sich deren Namen überschneiden, haben sie einen Präfix, der einheitlich von einem Entwickler bzw. einer Organization verwendet wird. So hat also Greenfoot alle Pakete unter org.greenfoot oder Java ihre Standard Library unter java.util. Auf diesen Namen, die Group-Id, folgt dann der Projektname in Kleinbuchstaben, getrennt durch einen Punkt. Beispielsweise hat meine Fabric-Mod Gotta Go Fast die Id global.oskar.gottagofast.

Wie bestimmt man also seine eigene Group-Id? Wie bereits sichbar ist eine Group-Id eine rückwärts geschriebene Domain. Ich besitze die Domain oskar.global, also ist meine Group-Id eben global.oskar. Natürlich besitzt nicht jeder eine Domain. Also verwendet man meistens com.github.<username>. Was Git und Github ist, dazu kommen wir in Appendix 1 Git it. Auch wenn man kein Konto bei Github hat, muss man jetzt keins erstellen. Man sollte nur überprüfen, dass der gewählte Nutzername frei ist. Dazu kann man einfach https://github.com /<username> öffnen (<username> wird natürlich durch den Benutzernamen ersetzt). Sollte ein Benutzername belegt sein, sollte man lieber einen anderen wählen, obwohl es nicht zwingend ist.

Drückt man jetzt auf “Create” öffnet sich ein Fenster wie dieses:

Man kann nun den “Whats new”-Tab und das “Meet the new UI”-Pane schließen. Dann sieht das ganze so aus:

Unten rechts lädt eine Leiste. Diese lädt, solang das Projekt geöffnet wird. Das kann je nach Computer und Projekt einige Minuten dauern. 

Sobald das fertig ist, ist die IDE einsatzbereit. Links hat man also seine Pakete. Wenn man den src, den main und den java ordner aufklappt findet man seine Group-Id. Die automatisch erstellte Klasse Main (erkennbar anhand des (C) vor dem Namen). Alle anderen Dateien und Ordnern interessieren erst einmal nicht. Nun kann man anfangen, Code in der Main-Klasse zu schreiben:

Anmerkung 3.1.3: AI Shit

Der graue Vorschlag kam nicht von der IDE, sondern von einer Code-generierenden KI namens Github Copilot. Copilot ist im allgemeinen nicht für Anfänger empfohlen, also sollte man erstmal die Finger davon lassen.

Wie man sieht schlägt IntelliJ Methoden der Objekte vor (in dem Fall von dem speziellen Objekt System.out) und markiert Fehler rot. Mit Tab lassen sich Autovervollständigungen anzeigen.

Nun noch ein Beispiel zur Erstellung von Klassen. Hierbei wird eine Klasse FizzBuzz im Paket util erstellt. In der Klasse wird eine Methode fizzBuzz deklariert, welche die bekannte FizzBuzz-Programmierübung implementiert. In der Klasse Main wird dann eine Instanz der Klasse FizzBuzz erstellt und die Methode für alle Zahlen von 0 bis 99 aufgerufen.

Das Video dazu ist zu lang und zu groß, um es hier hochzuladen (vor allem da ich es dazu dann erst zu einem GIF konvertieren müsste), also findet man es auf YouTube (auch in hohen Auflösungen).

Bevor du mit 1. Grundlagen fortfährst, würde ich empfehlen, dich noch etwas in IntelliJ umzuschauen und zu versuchen, dich mit ein paar Funktionen bekanntzumachen.