When you clicks the link or menu to start NetBean IDE, it will call the window execution software. In fact, it is operation system script to call java command to run java codes.
org.netbeans.Main class is called by the script with the main thread. It is clear that org.netbeans.Main class has the static main method as the entry point.To some extent, Main class is the proxy class for org.netbeans.Main class as MainImpl class's main method is performed in the Main class's main metho.
MainImpl.main(args);
Class org.netbeans.MainImpl takes advantage of Jave Reflection API to call org.netbeans.core.startup.Main class dynamically. First of all, class org.netbeans.core.startup.Main is loaded by ClassLoader, then use java.lang.reflect.Method to get org.netbeans.core.startup.Main class's main method; finally, the main method is invoked.
In class org.netbeans.core.startup.Main's main method, a special technique is adopted. The main metho starts one thread and thread invokes Main class's start method.
initializeURLFactory();
Splash.getInstance().setRunning(true);
getModuleSystem ();
CoreBridge.getDefault().loadSettings();
RunLevel level = (RunLevel)it.next ();
level.run ();