cls = VM_Class.forName(args[0]); } catch (VM_ResolutionException e) {
cls = (VM_Class) cl.loadClass(args[0], true).getVMType(); } catch (ClassNotFoundException e) {
  public void run() {    // Notify other clients that the startup is complete.    //    VM_Callbacks.notifyStartup();    // VM_Scheduler.trace("MainThread", "run");          //-#if RVM_WITH_ADAPTIVE_SYSTEM    // initialize the controller and runtime measurement subsystems    VM_Controller.boot();    //-#endif    String[]      mainArgs = null;    INSTRUCTION[] mainCode = null;          synchronized (VM_ClassLoader.lock) {      // load class specified by args[0]      //      VM_Class cls = null;      try {	cls = VM_Class.forName(args[0]);      } catch (VM_ResolutionException e) { 	// no such class	VM.sysWrite(e.getException() + "\n");	return;      }      // find "main" method      //      mainMethod = cls.findMainMethod();      if (mainMethod == null) { 	// no such method	VM.sysWrite(cls.getName() + " doesn't have a \"public static void main(String[])\" method to execute\n");	return;      }      // create "main" argument list      //      mainArgs = new String[args.length - 1];      for (int i = 0, n = mainArgs.length; i < n; ++i)	mainArgs[i] = args[i + 1];      mainCode = mainMethod.compile();          }       // dummy call for debugger to find the main method    // (needed for the default option of stopping in the main method on start up)    VM.debugBreakpoint();    // invoke "main" method with argument list    //    VM_Magic.invokeMain(mainArgs, mainCode);  }