That SO article is helpful.
It is static bceause you want to call it without instantiating the class.
It is public because it is called outside the package.
It is void because there is no need to return anything, unlike the C version which can return the error code… where SUCCESS is conventially defined elsewhere as 0.
It would be quite possible for the JVM to call something like that. Because the main method is associated with a class however, you can start different applications if you know the classes with their starting points. Which you couldn't do in C.