Metoda main() Java je výchozím bodem, odkud JVM spustí provádění programu Java. JVM nespustí kód, pokud v programu chybí hlavní metoda. Jedná se tedy o jednu z nejdůležitějších metod Javy a správné pochopení je velmi důležité.
Kompilátor Java nebo JVM hledá hlavní metodu, když začíná spouštět program Java. Podpis hlavní metody musí být specifickým způsobem, aby JVM rozpoznal tuto metodu jako svůj vstupní bod. Pokud změníme signaturu metody, program se zkompiluje, ale nespustí se.
Provádění programu Java, the java.exe je nazýván. Java.exe zase provádí volání Java Native Interface nebo JNI a načtou JVM. Java.exe analyzuje příkazový řádek, vygeneruje nové pole String a vyvolá metodu main(). Ve výchozím nastavení je hlavní vlákno vždy vlákno bez démona.
Syntaxe metody main().
Syntaxe metody main() se vždy zapisuje jako:
syntaxe git pull

Příklad
Nejběžnější způsob definování metody main() je uveden v níže uvedeném příkladu.
Jáva // Java Program to demonstrate the // syntax of the main() function class techcodeview.com { public static void main(String[] args) { System.out.println('I am a Geek'); } }> Výstup
I am a Geek>
Každé slovo v public static void main příkaz má v JVM význam, který je popsán níže:
1. Veřejnost
Je to an Modifikátor přístupu , který určuje, odkud a kdo může k metodě přistupovat. Zveřejnění metody main() ji zpřístupní globálně. Zveřejňuje se, aby jej JVM mohlo vyvolat mimo třídu, protože není přítomno v aktuální třídě.
Pokud hlavní metoda není veřejná, je její přístup omezen.
Příklad:
Jáva // Java Program to demonstrate the // use of any other access modifier // other than public class techcodeview.com { private static void main(String[] args) { System.out.println('I am a Geek'); } }>
Výstup
Error: Main method not found in class, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application>
2. Statické
Je to a klíčové slovo to je, když je spojeno s metodou, což z ní činí a metoda související s třídou . The hlavní() metoda je statická, takže ji JVM může vyvolat bez vytvoření instance třídy . To také šetří zbytečné plýtvání pamětí, kterou by objekt deklarovaný pouze použil pro volání hlavní() metodou JVM.
Pokud se pokusíte spustit kód Java, kde main není statický, zobrazí se chyba.
Příklad:
Jáva // Java Program to demonstrate the // error occurred when we dont use the // static keyword in the main() method class techcodeview.com { public void main(String[] args) { System.out.println('I am a Geek'); } }>
Výstup
java multithreading
Error: Main method is not static in class test, please define the main method as: public static void main(String[] args)>
3. Neplatné
Je to a klíčové slovo a je zvyklý určit, že metoda nic nevrací . Jako hlavní() metoda nic nevrací, její návratový typ je prázdnota . Jakmile bude hlavní() se ukončí i program Java. Proto nemá smysl se z ní vracet hlavní() metoda, protože JVM nemůže nic dělat se svou návratovou hodnotou.
Pokud hlavní metoda není neplatná, dostaneme chybu.
Příklad:
Jáva // Java Program to demonstrate the // error occurred when we dont use the // void return type in the main() method class techcodeview.com { public static int main(String[] args) { System.out.println('I am a Geek'); return 1; } }>
Výstup
Error: Main method must return a value of type void in class Main, please define the main method as: public static void main(String[] args)>
4. hlavní
to je název hlavní metody Java . to je identifikátor které JVM hledá jako výchozí bod programu Java . Není to klíčové slovo.
Pokud změníme název při spouštění hlavní metody, dostaneme chybu.
Příklad:
Jáva // Java Program to demonstrate the // error occurred when we name the // main() method as newmain. class techcodeview.com { public static void newmain(String[] args) { System.out.println('I am a Geek'); } }>
Výstup
Error: Main method not found in class, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application>
5. Řetězec[] argumenty
To ukládá příkazový řádek Java argumenty a je pole typu java.lang.String třída. Zde je název pole String argumenty ale není pevně daný a uživatel může místo něj použít libovolný název.
Příklad: Proces provádění řetězce[]
Jáva // Java Program to demonstrate // the working of String[] args // in the main() method class techcodeview.com { // Commamd-Line Code ->// javac techcodeview.com.java // java techcodeview.com 1 2 3 public static void main(String[] args) { for (String elem : args) System.out.println(elem); } }>
Výstup
java obrácení řetězce
1 2 3>
Kromě výše uvedeného podpisu main, můžete použít public static void main(String args[]) nebo public static void main (String… args) k volání hlavní funkce v Javě. Hlavní metoda je volána, pokud se její formální parametr shoduje s parametrem pole Strings.
Poznámka: Hlavní metoda je v Javě Cumpulosory
Přetížení metody main() v Javě
Přetížení metody main() je možné v Javě, což znamená, že můžeme v programu vytvořit libovolný počet metod main().
Abychom přetížili metodu main() v Javě, musíme vytvořit metodu main() s různými parametry.
Příklad:
Jáva public class Main { public static void main(String[] args) { if (args.length == 0) { System.out.println('Running main() with no arguments'); } else if (args.length == 1) { try { int value = Integer.parseInt(args[0]); main(value); } catch (NumberFormatException e) { main(args[0]); } } else { // Handle more arguments as needed } } public static void main(int value) { System.out.println('Running main() with integer argument: ' + value); } public static void main(String message) { System.out.println('Running main() with string argument: ' + message); } }> Výstup:
Running main() with no arguments>
Závěr
Metoda Java main() je výchozím bodem programu Java. Je to hlavní tělo, které spouští JVM, a bez metody main() bez ní nelze spustit žádný program Java.
Další informace: Výukový program Java
logo java
Java main() Method – FAQ
Může být hlavní metodou int? Pokud ne, proč?
Ne, hlavní metoda Java nemůže být int. Jsou pro to dva hlavní důvody:
- JVM hledá public static void main(String[] args) při spouštění programu, protože se jedná o standardní podpis pro vstup. Použití signatury int by při provádění programu způsobilo zmatek a problémy s kompatibilitou.
- Neplatný podpis znamená, že hlavní metoda nic nevrátí, ale použití signatury int znamená, že hlavní funkce bude muset vrátit celé číslo, což pro JVM není užitečné.
Můžeme spustit program Java bez hlavní metody?
Ne, od JDK7 hlavní metoda je povinná. Kompilátor nejprve ověří, zda je main() přítomen nebo ne. Pokud váš program neobsahuje hlavní metodu, zobrazí se chybová hlavní metoda, která se ve třídě nenachází.
Chcete-li zjistit více o tématu, viz Je hlavní metoda v Javě povinná? článek.
Můžeme deklarovat metodu main() bez argumentů String[]?
Ano, metodu main() můžeme deklarovat bez argumentů String[]. I když to vygeneruje chybovou zprávu, pokud se přímo pokusíme provést hlavní metodu uvnitř třídy ovladače, jak je to provedeno v níže uvedeném příkladu.
Níže je uveden správný způsob, jak napsat program bez argumentů String[].
Jávaimport java.io.*; import javafx.application.Application; abstract class GFG extends javafx.application.Application { // static block static { System.out.println('Hello, world!'); System.exit(0); } }>Výstup
Hello, world!>
Proč je main void v Javě?
Hlavní metoda slouží jako výchozí bod pro provádění programu v Javě. JVM neočekává návratovou hodnotu od hlavního, protože neexistuje žádný mechanismus, který by takovou hodnotu přijal nebo zpracoval.