예제 #1
0
  private boolean doLoad(boolean suspended, StringTokenizer t) throws NoSessionException {

    String clname;

    if (!t.hasMoreTokens()) {
      clname = context.getMainClassName();
      if (!clname.equals("")) {
        // Run from prevously-set class name.
        try {
          String vmArgs = context.getVmArguments();
          runtime.run(suspended, vmArgs, clname, context.getProgramArguments());
          return true;
        } catch (VMLaunchFailureException e) {
          env.failure("Attempt to launch main class \"" + clname + "\" failed.");
        }
      } else {
        env.failure("No main class specifed and no current default defined.");
      }
    } else {
      clname = t.nextToken();
      StringBuffer sbuf = new StringBuffer();
      // Allow VM arguments to be specified here?
      while (t.hasMoreTokens()) {
        String tok = t.nextToken();
        sbuf.append(tok);
        if (t.hasMoreTokens()) {
          sbuf.append(' ');
        }
      }
      String args = sbuf.toString();
      try {
        String vmArgs = context.getVmArguments();
        runtime.run(suspended, vmArgs, clname, args);
        context.setMainClassName(clname);
        // context.setVmArguments(vmArgs);
        context.setProgramArguments(args);
        return true;
      } catch (VMLaunchFailureException e) {
        env.failure("Attempt to launch main class \"" + clname + "\" failed.");
      }
    }
    return false;
  }