In java 1.1 and before java 1.2 if the main method was not public static then compiler gave erreor message.
in java 1.2 and above u can give any access modifer to main method coz it is entry point method for your code. This is possible because a new class is added in java2 AccessibleObjects which only jvm can use. this class allow to bypass the access modifier for main method only if it is STATIC & VOID main(String argas[]) Note any other defination will not be considered as entry point method