code: public Process start() throws IOException {
          ArrayList<String> cmd = new ArrayList<>();
  
          // Invoke Java and setup classpath.
          cmd.add(System.getProperty("java.home") + File.separator + "bin" + File.separator + "java");
          cmd.add("-cp");
          cmd.add(System.getProperty("java.class.path"));
  
          // Set System Properties (if any).
          for (val e : this.systemProps.entrySet()) {
              cmd.add(String.format("-D%s=%s", e.getKey(), e.getValue()));
          }
          // Set class & class arguments.
          cmd.add(this.target.getCanonicalName());
          if (this.args != null) {
              for (Object arg : this.args) {
                  cmd.add(arg.toString());
              }
          }
  
          this.builder.command(cmd);
          return this.builder.start();
      }
docs: Executes the Class using the accumulated options.
  
  @return The Process reference.
  @throws IOException If an error occurred.