But the problem is how JVM knows which constructor to call in case of overloaded constructors or even if there is only one paramaterized constructor, then what to pass."
I do also think so. I dont use Java. I use C++. If you dont write a constructor by yourself a default no argument constructor and a copy constructor is implicitly provided to you. But when you write a constructor by yourself then no constructor is provided by the Compiler. I think this theory is obeyed by Java too.
So in a Class its not guaranteed that it will not have a Constructor. also restricting a Class from having an user defined constructor is a bad idea. But If the system lets you to write your own constructor then even there is no guarantee that it will be no-argument constructor. so if it is a parameterized constructor It doesn't know what parameters to send.
So I think thats the actual reason behind static Main function.