Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Replacing ‘public’ with ‘private’ in “main” in Java

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Consider following Java program:




class GFG {
    public static void main(String args[])
    {
        System.out.println("GeeksforGeeks");
    }
}

GeeksforGeeks

Explanation:
1)public: It is an access specifier which allows the JVM(Java Virtual Machine) to access the main method from anywhere.
2)static: static keyword allows the JVM to access the main method without any instance(object).
3)void: It specifies that the main method doesn’t return anything.
4)main: name of the method(function) configured in JVM.
5)String args[]: Command line arguments.

Now, if we replace ‘public’ with ‘private’ in “public static void main”, the above code becomes:




class GFG {
    private static void main(String args[])
    {
        System.out.println("GeeksforGeeks");
    }
}

Explanation:
The above code will be compiled successfully, but will throw a runtime error as follows:

Error: Main method not found in class GFG, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

Click to view output

Reason: Since the access specifier was changed from “public” to “private” JVM was unable to access/locate the main method.

My Personal Notes arrow_drop_up
Last Updated : 21 Aug, 2018
Like Article
Save Article
Similar Reads
Related Tutorials