Can We Have Multiple Main Methods in Java? - GeeksforGeeks

03 Aug, 2021
Java is an object-oriented language all processing is carried within classes. Execution of a program means dictates java virtual machine to load the class and then start execution of its main method. Java’s main method is entry point of any Java program. Public access modifier is used before the main method so that JVM can identify the execution point of the program. If other access modifiers are used instead of public, it will not be visible to JVM.
Initially, JVM loads the class but there is no object of the class present to call the main method. That is why the main method has to be static so that JVM can load the class and call the main method without having object of class. Java main method does not return anything that is why its return type is void. If we try to return anything from main method, it will give an unexpected value error because it is predefined signature in JVM. Java’s main method accepts string array as an argument. It is also called a command-line argument and it can pass from the command line in the main method. Now let us implement the same via appending clean java programs.
Implementation:
Example 1
Java
// Java Program Illustrating Can we have Multiple main// methods // Importing input output classesimport java.io.*; // Main classclass GFG {     // Method 1    // Method inside main() method    void test()    {         // Print statement whenever this method is called        System.out.print("Inside class GFG");    }     // Method 2    // Main driver method    public static void main(String[] args)    {        // Creating an object class inside main() method        GFG obj = new GFG();         // Calling the class object inside main() method        obj.test();    }}
Inside class GFG
In the above program we are simply calling test() method by using class object from main() method. Now let us go onto depicting program having multiple main() methods. 
Example 2 
Java
// Java Program Illustrating Can we have// Multiple main() Methods // Importing input output classesimport java.io.*; // Main classclass GFG {     // Method  1    void test()    {         // Print statement when this method is called        System.out.print("inside test");    }     // Method 2    // Main driver method    public static void main(int i)    {         // Creating object later calling of class        // inside this main() method        GFG obj = new GFG();        obj.test();    }     // Method 3    // Main driver method    public static void main()    {         // Creating object later calling of class        // inside this main() method        GFG obj = new GFG();        obj.test();    }}
Output: 
Output explanation:
Above program consist of two main methods but throws out an error that the Main method is not found in class, please define the main method as public static void main(String[] args)”. Only the main() method with a single string array as a parameter is considered as an entry point of the program. JVM only looks for main method with string array as an argument. In order for other main methods to execute, you need to call them from inside  public static void main(String[ ] args)
Example 3  
Java
// Java Program Illustrating Can we have// Multiple main() Methods // Importing input output classesimport java.io.*; // Main classclass GFG {     // Method 1    // Main driver method    public static void main(int i)    {         // Print statement for method 1        System.out.println(i);    }     // Method 2    // Main driver method    public static void main(String s)    {         // Print statement for method 2        System.out.println(s);    }     // Method 3    // Main driver method    public static void main(String[] args)    {         // Calling above 2 main methods        main(1);        main("hi");    }}
1
hi
From the above program, we can say that Java can have multiple main methods but with the concept of overloading. There should be only one main method with parameter as string[ ] arg. 
 
sweetyty
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Exceptions in Java
Constructors in Java
Different ways of Reading a text file in Java
Functional Interfaces in Java
Generics in Java
Comparator Interface in Java with Examples
PriorityQueue in Java
Introduction to Java
How to remove an element from ArrayList in Java?