Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hoofdstuk 2 — Installatie en Tools (Java 21)

In dit hoofdstuk leer je stap voor stap hoe je Java 21 installeert, hoe je controleert of alles werkt, en hoe je je eerste programma’s compileert en uitvoert met zowel de terminal als een IDE (IntelliJ IDEA Community). We richten ons volledig op absolute beginners, dus we nemen rustig alle stappen door, inclusief veelvoorkomende problemen en hoe je die oplost.

Wat ga je leren:

  • Wat is een JDK en welke versie heb je nodig?
  • Java 21 installeren (Temurin/Adoptium of Oracle JDK) en de installatie verifiëren.
  • Werken met de terminal: java en javac gebruiken.
  • IntelliJ IDEA Community installeren en gebruiken (project aanmaken, Run/Debug).
  • Basisprojectstructuur en bestandsnamen vs. klassennamen.
  • Veelvoorkomende installatieproblemen oplossen.

Over JDK en JVM in één alinea: De Java Development Kit (JDK) bevat de compiler (javac) en de Java Runtime (JVM). Je schrijft broncode in .java‑bestanden, compileert met javac naar .class‑bestanden (bytecode), en voert die uit met java. De JVM zorgt ervoor dat dezelfde bytecode op meerdere besturingssystemen kan draaien.

Installatiekeuze: Temurin (Adoptium) of Oracle

  • Voor beginners is Temurin (Adoptium) vaak de makkelijkste gratis keuze.
  • Download Java 21 (LTS) voor jouw besturingssysteem (Windows, macOS, Linux) en volg de installer.
  • Op Linux kun je een pakketbeheerder gebruiken (bijv. apt, dnf, pacman); zorg wel dat je specifiek Java 21 pakt.

Na de installatie moet je kunnen controleren of java en javac op je PATH staan en de juiste versie tonen.

Codevoorbeeld 1 — Terminalcontrole van versies (uitvoer is géén code, maar je voert de commando’s uit): Introductie: We controleren of de installatie gelukt is door de versies van java en javac op te vragen.

java -version
javac -version

Verwacht: java version "21" (of openjdk 21) en javac 21.

Waarom twee commando’s? java voert Java‑programma’s uit; javac compileert broncode. Soms staat java wel goed, maar javac niet. Zorg dat beide werken.

Eerste programma compileren en uitvoeren in de terminal Nu je JDK werkt, gaan we een simpel programma maken. Gebruik een teksteditor (of je IDE) en let op de bestandsnaam!

Codevoorbeeld 2 — HalloWereld.java Introductie: Dit is je eerste Java-bronbestand en laat de minimale structuur met main-methode zien.

public class HalloWereld {
    public static void main(String[] args) {
        System.out.println("Hallo, wereld!");
    }
}

Sla dit op als HalloWereld.java (exact dezelfde naam als de klasse). Compileer en voer uit:

Codevoorbeeld 3 — Compilatie en run met javac/java Introductie: Je leert de basisstappen om te compileren met javac en uit te voeren met java.

javac HalloWereld.java
java HalloWereld

Let op: bij java laat je de .class of .java extensie weg; je gebruikt de klassenaam.

Een iets uitgebreider voorbeeld om te zien hoe argumenten werken. Terminalargumenten zijn teksten die je achter de klassenaam zet.

Codevoorbeeld 4 — Programma met argumenten Introductie: We tonen hoe je command-line argumenten leest via de String[] args parameter.

public class ArgumentenDemo {
    public static void main(String[] args) {
        System.out.println("Aantal argumenten: " + args.length);
        if (args.length > 0) {
            System.out.println("Eerste argument: " + args[0]);
        }
    }
}

Compileer en run:

javac ArgumentenDemo.java
java ArgumentenDemo Java21 is leuk

Je ziet hoe args gevuld wordt.

Werken met invoer via de console (Scanner) Als absolute beginner is het handig om invoer van de gebruiker te lezen. We tonen een veilig en modern voorbeeld met try-with-resources.

Codevoorbeeld 5 — Scanner voor invoer Introductie: Met Scanner kun je gebruikersinvoer lezen; we gebruiken try-with-resources voor veilig sluiten.

import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        try (Scanner sc = new Scanner(System.in)) {
            System.out.print("Wat is je naam? ");
            String naam = sc.nextLine();
            System.out.println("Hallo, " + naam + "!");
        }
    }
}

Je kunt dit ook vanuit de IDE uitvoeren (zie hieronder), of via terminal met java ScannerDemo (na compilatie).

IntelliJ IDEA Community installeren

  • Download en installeer IntelliJ IDEA Community (gratis).
  • Start de IDE en kies “New Project”. Selecteer Java en controleer dat de SDK op Java 21 staat.
  • Maak een nieuw project en voeg een klasse met een main‑methode toe.
  • Klik op de groene Run‑knop om het programma te starten.

Projectstructuur en klassenaam Java is streng wat betreft bestandsnaam en klassenaam. De publieksklasse in een bestand moet dezelfde naam hebben als het bestand.

Codevoorbeeld 6 — Verkeerde bestandsnaam (fout illustratie) Introductie: Java koppelt de publieksklasse aan de bestandsnaam; hier zie je wat er misgaat bij een mismatch.

public class DemoNaam {
    public static void main(String[] args) {
        System.out.println("Dit werkt alleen als het bestand DemoNaam.java heet");
    }
}

Sla dit op als DemoNaam.java. Als je het Demo.java noemt, geeft de compiler een foutmelding.

Run‑configuraties in IntelliJ

  • Wanneer je op Run klikt boven de main‑methode, maakt de IDE een Run‑configuratie aan.
  • Je kunt daar argumenten toevoegen (Program arguments). Probeer dit met ArgumentenDemo.

Codevoorbeeld 7 — Print vs println (korte demo) Introductie: Het verschil tussen print (zonder nieuwe regel) en println (met nieuwe regel).

public class PrintDemo {
    public static void main(String[] args) {
        System.out.print("Zonder nieuwe regel ");
        System.out.print("gaat de tekst verder.");
        System.out.println();
        System.out.println("Met println komt er een nieuwe regel");
    }
}

Gebruik print voor aaneengesloten tekst en println voor regels.

Foutmeldingen lezen (compilatiefout vs runtime‑fout)

  • Compilatiefouten: gevonden tijdens javac. Vaak typefouten, ontbrekende puntkomma’s, of verkeerde bestandsnaam.
  • Runtime‑fouten: treden op tijdens het uitvoeren (bijv. delen door nul, of NumberFormatException bij ongeldige invoer).

Codevoorbeeld 8 — ArithmeticException (delen door nul) Introductie: Een voorbeeld van een runtime-fout en hoe je deze (nog niet) afvangt.

public class DelenDoorNul {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        // System.out.println(a / b); // zou een runtime-fout geven
        System.out.println("Vermijd delen door nul!");
    }
}

In latere hoofdstukken leer je hoe je exceptions afhandelt met try/catch.

Gebruik van JavaDoc en hulp in de IDE

  • Plaats de cursor op een symbool en gebruik Quick Documentation (meestal F1 of Ctrl+Q) om beschrijvingen te zien.
  • De IDE kan kleine problemen markeren met een lampje; klik daarop voor suggesties.

Codevoorbeeld 9 — JavaDoc‑commentaar op een methode Introductie: JavaDoc is gestructureerd commentaar dat documentatie kan genereren en tooling voedt.

public class JavaDocVoorbeeld {
    /**
     * Geeft de som terug van twee gehele getallen.
     * @param a eerste getal
     * @param b tweede getal
     * @return som van a en b
     */
    static int som(int a, int b) {
        return a + b;
    }
    public static void main(String[] args) {
        System.out.println(som(2, 3));
    }
}

Je ziet hoe commentaar boven een methode extra documentatie biedt.

Omgevingsvariabelen en PATH (korte uitleg voor beginners)

  • Op Windows regelt de installer meestal PATH automatisch.
  • Op macOS/Linux moet je soms zelf PATH aanpassen in je shellprofiel (.bashrc, .zshrc).
  • Controleer altijd java -version en javac -version in een nieuwe terminal nadat je aanpassingen deed.

Codevoorbeeld 10 — Minimalistische structuur voor meerdere bestanden Introductie: Zo organiseer je meerdere klassen in losse bestanden en laat je één main starten.

// Bestand: App.java
public class App {
    public static void main(String[] args) {
        Helper.groet("Kim");
    }
}

// Bestand: Helper.java
class Helper {
    static void groet(String naam) {
        System.out.println("Hallo, " + naam);
    }
}

Compileer beide bestanden in één keer:

javac App.java Helper.java
java App

Zo zie je dat je meerdere klassen kunt hebben; alleen de klasse met main start je.

Veelvoorkomende installatieproblemen en oplossingen

  • java werkt wel, javac niet: je hebt mogelijk alleen de JRE of een onvolledige installatie. Installeer de volledige JDK 21 en controleer PATH.
  • Meerdere Java‑versies op het systeem: de verkeerde versie staat vooraan op PATH. Pas PATH of je IDE‑SDK aan naar 21.
  • IDE vindt de SDK niet: stel in IntelliJ bij Project Structure de juiste SDK (21) in.
  • Bestanden met vreemde tekens: zet bestands‑encoding op UTF‑8 (IDE instellingen).

Stap‑voor‑stap checklist voor een werkende setup

  1. Installeer JDK 21 (Temurin/Adoptium aanbevolen voor beginners).
  2. Controleer versie met java -version en javac -version.
  3. Installeer IntelliJ IDEA Community en kies SDK 21 bij het aanmaken van een project.
  4. Maak een klasse met main en run via de groene knop.
  5. Probeer in de terminal te compileren en uit te voeren om het verschil te leren.

Koppeling met oefeningen

  • In java-workbook/src/chapter_2.md vind je praktische opdrachten rond installatie, versies en eenvoudige programma’s, inclusief het werken met de terminal.
  • In java-solutions/src/chapter_2.md vind je richtantwoorden. In volgende hoofdstukken voegen we ook .java‑bestanden met uitwerkingen toe.

Samenvatting Je hebt geleerd hoe je Java 21 installeert, hoe je controleert of alles werkt, en hoe je met zowel de terminal als een IDE programma’s bouwt en uitvoert. Je kent nu het verschil tussen java en javac, weet hoe je argumenten en invoer gebruikt, en je hebt een idee hoe je fouten herkent. In Hoofdstuk 3 ga je je eerste programma’s uitbreiden en meer oefenen met code schrijven.