"The Java Virtual Machine Specification," which in section 2.17.1 states, "The method main must be declared public, static, and void."
Sun introduced this problem in version 1.2 of Java. As of 1.3 the problem is still there.
After a quick search for "private main" at java.sun.com, I found (requires login):
http://developer.java.sun.com/developer/bugParade/bugs/4252539.html As you can see, the main issue is a known problem with a bug report opened against it. However, Sun has closed the bug report and the problem will NOT be fixed, "The runtime allows call to private methods, because of reflection. Fixing it will cause potential troubles."
So there you have it.
However, be careful while taking the certification exam. Last time that I checked, the proper answer to "How do you define a main?" remains: "The method main must be declared public, static, and void." Reality and the correct answer seem to disagree.