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);
}