public void run()

in appengine-plugins-core/src/main/java/com/google/cloud/tools/appengine/operations/DevAppServerRunner.java [60:100]


  public void run(
      List<String> jvmArgs,
      List<String> args,
      Map<String, String> environment,
      @Nullable Path workingDirectory)
      throws ProcessHandlerException, AppEngineJavaComponentsNotInstalledException,
          InvalidJavaSdkException, IOException {
    sdk.validateAppEngineJavaComponents();
    sdk.validateJdk();

    List<String> command = new ArrayList<>();

    command.add(sdk.getJavaExecutablePath().toAbsolutePath().toString());

    command.addAll(jvmArgs);
    if (sdk.getAppEngineSdkForJavaPath().getParent() != null) {
      command.add(
          "-Dappengine.sdk.root="
              + sdk.getAppEngineSdkForJavaPath().getParent().toAbsolutePath().toString());
    }
    command.add("-cp");
    command.add(sdk.getAppEngineToolsJar().toAbsolutePath().toString());
    command.add("com.google.appengine.tools.development.DevAppServerMain");

    command.addAll(args);

    logger.info("submitting command: " + Joiner.on(" ").join(command));

    Map<String, String> devServerEnvironment = Maps.newHashMap(environment);
    devServerEnvironment.put("JAVA_HOME", sdk.getJavaHomePath().toAbsolutePath().toString());

    ProcessBuilder processBuilder = processBuilderFactory.newProcessBuilder();
    processBuilder.command(command);
    if (workingDirectory != null) {
      processBuilder.directory(workingDirectory.toFile());
    }
    processBuilder.environment().putAll(devServerEnvironment);
    Process process = processBuilder.start();

    processHandler.handleProcess(process);
  }