Skip to content
Related Articles
Open in App
Not now

Related Articles

Is main method compulsory in Java?

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 17 Feb, 2021
Improve Article
Save Article

The answer to this question depends on the version of java you are using. Prior to JDK 7, the main method was not mandatory in a java program.

  • You could write your full code under static block and it ran normally.
  • The static block is first executed as soon as the class is loaded before the main(); the method is invoked and therefore before the main() is called. main is usually declared as static method and hence Java doesn’t need an object to call the main method.
  • When you will give the run command(i.e java Test in the below-mentioned program in notepad), so compiler presumes Test is that class in which main() is there and since compiler load, the main() method, static blocks are ready to get executed. So here, it will run static block first and then it will see no main() is there. Therefore it will give “exception”, as exception comes while execution. However, if we don’t want an exception, we can terminate the program by


However, from JDK7 main method is mandatory. The compiler will verify first, whether main() is present or not. If your program doesn’t contain the main method, then you will get an error “main method not found in the class”. It will give an error (byte code verification error because in it’s byte code, main is not there) not an exception because the program has not run yet.

Note:- However, both the programs will get compile because for compilation we don’t need main() method.

// This program will successfully run
// prior to JDK 7
public class Test 
    // static block
        System.out.println("Hello User");

Below is the screenshot of the output to help you to visualize the same thing, practically. I have run this program on Notepad so that you can able to understand why that exception has changed into error in the latest version.

  • If run prior to JDK 7

    Output in JAVA 6 version.

  • If run on JDK 7,8 and so on…

    Output in JAVA 7

  • This article is contributed by Gaurav Miglani. If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

    My Personal Notes arrow_drop_up
    Related Articles

    Start Your Coding Journey Now!