In any Java program, the main() method is the starting point from where compiler starts program execution . So, the compiler needs to call the main() method. If the main() is allowed to be non-static, then while calling the main() method JVM has to instantiate its class.
Read moreWhy Java has main method?
Reasons for defining main() method as static The main() method is the entry point of each and every Java program. The main() method is required because the compiler starts executing a program from this entry point . The JVM needs to instantiate the class if the main() method is allowed to be non-static.
Read more