Naar inhoud springen

Programmeren in Java/Commandoregelargumenten

Uit Wikibooks

Programmeren in Java In ontwikkeling. Revisiedatum: onbekend

Inleiding Redelijk ontwikkeld. Revisiedatum: 22 augustus 2008

Installatie In ontwikkeling. Revisiedatum: 26 decemeber 2020

Hulpmiddelen Nog vrijwel niets. Revisiedatum: 26 decemeber 2020
  1. Booleaanse logica Nog vrijwel niets. Revisiedatum: 30 december 2020
  2. Conditionele blokken Goed ontwikkeld. Revisiedatum: 24 april 2021
  3. Lussen Goed ontwikkeld. Revisiedatum: 24 Februari 2021
  4. Methoden Nog vrijwel niets. Revisiedatum: 30 december 2020
  5. Arrays Goed ontwikkeld. Revisiedatum: 30 december 2020
  6. Strings In ontwikkeling. Revisiedatum: 24 november 2007
  7. Exceptions Redelijk ontwikkeld. Revisiedatum: 24 november 2007
  8. Commandoregel-argumenten Goed ontwikkeld. Revisiedatum: 24 Februari 2021
  9. Invoer van een toetstenbord Nog vrijwel niets. Revisiedatum: 24 Februari 2021
  10. Multithreading Nog vrijwel niets. Revisiedatum: 20 januari 2007
  11. GUI In ontwikkeling. Revisiedatum: 24 november 2007
  12. In- & uitvoer In ontwikkeling. Revisiedatum: 24 november 2007
Appendices

Zoals je ondertussen weet is main het ingangspunt van je programma. main is wat Java zal gebruiken om je programma te starten.

public class Main {

    public static void main(String[] args) {
            // Je programmacode
    }
}

Zoals je wellicht ook hebt gemerkt is dat main een parameter heeft, namelijk String[] args. Hiermee kun je argumenten doorgeven wanneer je programma opstart.

Argument meegeven aan je programma

[bewerken]

Via de parameter args kun je dus argumenten in de vorm van een array met strings meegeven en gebruiken. Bijvoorbeeld als volgt.

public class Main {

    public static void main(String[] args) {
        System.out.println("Hallo " + args[0] + "!");
    }
}

In dit voorbeeld gaan we een programma hebben waarbij we een naam zullen meegeven als we het starten. Deze naam komt dan als string terecht in de array met de naam args, deze naam zullen we dan met args[0] uit de array halen en printen op het scherm. We doen dit door eerst het programma te compileren met javac en dan het te starten met java.

javac Main.java
java Main Jan

Zoals je ziet geven we de naam mee achter de naam van het programma. Dit heeft als resultaat:

Hallo Jan!

Als je nu echter vergeet om een naam mee te geven, krijg je volgende foutmelding.

java Main
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
        at Main.main(Main.java:4)

Dit komt omdat er geen argument is meegegeven, dus de array bevat geen elementen. Je kunt dit verhelpen door bijvoorbeeld een if toe te voegen aan je programma.

public class Main {

    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("Je hebt geen naam meegegeven.");
        } else {
            System.out.println("Hallo " + args[0] + "!");
        }
    }
}

Meerdere argumenten

[bewerken]

Wil je meerdere argumenten meegeven aan je applicatie kun je gewoon meer toevoegen aan de commando, telkens gescheiden door een spatie.

java Main Jan Klaas Karen

Dan kun je de namen uit de args array als volgt uitlezen.

public class Main {

    public static void main(String[] args) {
        // Door gewoon de array rechtstreeks aan te spreken.
        // Dit heeft dus als nadeel dat je het exact juiste aantal argumenten moet meegeven.
        // Anders krijg je fouten als je te weinig argumenten meegeeft,
        // of print je te weinig namen als je meer argumenten meegeeft.
        System.out.println(args[0]);
        System.out.println(args[1]);
        System.out.println(args[2]);

        // Met de gewone for-lus.
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }

        // Met de for each-lus.
        for (String name : args) {
            System.out.println(name);
        }
    }
}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.