public static void main(String[])

Aplikáciu v jazyku Java spúšťame tak, že v príkazovom riadku alebo ikone programu určíme triedu, pomocou ktorej sa má program spustiť. Táto trieda musí byť typu "public", a musí obsahovať metódu s hlavičkou "public static main(String[] args)".

Spustenie aplikácie: Naštartuje sa Java runtime. Načíta sa trieda, ktorú sme zadali v spúšťacom príkaze. Spustí sa jej metóda "main". Čo sa stane potom, závisí od obsahu metódy "main".

Ukončenie aplikácie: Aplikácia môže pokračovať aj po skončení metódy main, ak bežia ďalšie vlákna (okrem démonov). Napríklad ak metóda "main" vytvorila nové okno, aplikácia bude pokračovať aj po jej skončení, dokiaľ toto okno existuje. Aplikáciu ukončíme ukončením všetkých vlákien, alebo zavolaním metódy "System.exit".

Podrobnosti

Metóda "main" musí byť v triede, ktorá je "public". Inak by sme mimo programu nemali právo použiť túto triedu (na spustenie programu).

Metóda "main" musí byť "public". Inak by sme mimo programu nemali právo zavolať túto metódu.

Metóda "main" musí byť "static". To znamená, že táto metóda sa vzťahuje na triedu ako celok, nie na jej konkrétny objekt. V okamihu spustenia metódy "main" ešte žiadne objekty danej triedy nemáme. (Ak chceme, môžeme si ich vytvoriť pomocou metódy "main".)

Metóda "main" musí mať návratový typ "void". Nevracia totiž žiadnu hodnotu. (Ak chceme operačnému systému vrátiť číselnú hodnotu po ukončení aplikácie, urobíme to pomocou metódy "System.exit", ktorá ukončí program a vráti danú hodnotu. Skončením metódy "main" sa totiž aplikácia ešte nemusí skončiť, pokiaľ bežia ďalšie vlákna.)

Metóda "main" musí mať parameter typu "String[] args" alebo "String... args". (Na názve parametra nezáleží; nemusí to byť "args".) Tento parameter obsahuje ďalšie slová z príkazového riadku alebo ikony programu. (Ak tieto parametre nechceme využiť, nemusíme, ale aj tak musia byť deklarované v hlavičke funkcie.)

Metóda "main" môže a nemusí deklarovať výnimku ľubovoľného typu. Napríklad "public static void main(String[] args) throws Exception".

Príklady

Tento program vypíše na obrazovku text "Ahoj".

package pokus;
public class Ahoj {
  public static void main(String[] args) {
    System.out.println("Ahoj");
  }
}

Z príkazového riadku ho spustíme príkazom:

java pokus.Ahoj

Tento program vypíše na obrazovku súčet čísel zadaných v príkazovom riadku. Ak je na vstupe zadaný nesprávny údaj, vráti výnimku.

package pokus;
public class Sucet {
  public static void main(String[] args) throws NumberFormatException {
    int sucet = 0;
    for (String arg : args) {
      sucet += Integer.parseInt(arg);
    }
    System.out.println(sucet);
  }
}

Z príkazového riadku ho spustíme príkazom:

java pokus.Sucet 10 20 30

Program môžeme prerobiť tak, aby nám v príkazovom riadku nevypisoval výnimku, ale aby vrátil hodnotu 0, ak prebehol úspešne, a hodnotu 1, ak nastala chyba.

package pokus;
public class Sucet {
  public static void main(String[] args) {
    int sucet = 0;
    for (String arg : args) {
      try {
        sucet += Integer.parseInt(arg);
      } catch (NumberFormatException ex) {
        System.exit(1);
      }
    }
    System.out.println(sucet);
    System.exit(0);
  }
}

V operačnom systéme MS Windows nájdeme výslednú hodnotu 0 alebo 1 v systémovej premennej %ERRORLEVEL%. Ak by sme tento program spúšťali napríklad zo súboru typu "*.bat", mohli by sme na chybu v program nejako zareagovať.

viliam@bur.sk