/** * Spawns a new process using the Java Runtime API. * * @see SystemInfo#executeProcess(ProcessExecution) */ public ProcessExecutionResults executeProcess(ProcessExecution processExecution) { ProcessToStart process = new ProcessToStart(); ProcessExecutionResults executionResults = new ProcessExecutionResults(); process.setProgramExecutable(processExecution.getExecutable()); process.setCheckExecutableExists(processExecution.isCheckExecutableExists()); process.setArguments(processExecution.getArgumentsAsArray()); process.setEnvironment(processExecution.getEnvironmentVariablesAsArray()); process.setWorkingDirectory(processExecution.getWorkingDirectory()); process.setWaitForExit(Long.valueOf(processExecution.getWaitForCompletion())); process.setCaptureOutput(Boolean.valueOf(processExecution.isCaptureOutput())); process.setKillOnTimeout(Boolean.valueOf(processExecution.isKillOnTimeout())); if (processExecution.isCaptureOutput()) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); process.setOutputStream(outputStream); executionResults.setCapturedOutputStream(outputStream); } ProcessExecutorResults javaExecResults = javaExec.execute(process); executionResults.setExitCode(javaExecResults.getExitCode()); executionResults.setError(javaExecResults.getError()); executionResults.setProcess(javaExecResults.getProcess()); return executionResults; }
/** * Spawns a new process using the Java Runtime API. * * @see SystemInfo#executeProcess(ProcessExecution) */ public ProcessExecutionResults executeProcess(ProcessExecution processExecution) { ProcessToStart process = new ProcessToStart(); ProcessExecutionResults executionResults = new ProcessExecutionResults(); process.setProgramExecutable(processExecution.getExecutable()); process.setCheckExecutableExists(processExecution.isCheckExecutableExists()); process.setArguments(processExecution.getArgumentsAsArray()); process.setEnvironment(processExecution.getEnvironmentVariablesAsArray()); process.setWorkingDirectory(processExecution.getWorkingDirectory()); process.setWaitForExit(Long.valueOf(processExecution.getWaitForCompletion())); process.setCaptureOutput(Boolean.valueOf(processExecution.getCaptureMode().isCapture())); process.setKillOnTimeout(Boolean.valueOf(processExecution.isKillOnTimeout())); ProcessExecutionOutputStream outputStream = processExecution.getCaptureMode().createOutputStream(); process.setOutputStream(outputStream); executionResults.setCapturedOutputStream(outputStream); ProcessExecutorResults javaExecResults = javaExec.execute(process); executionResults.setExitCode(javaExecResults.getExitCode()); executionResults.setError(javaExecResults.getError()); executionResults.setProcess(javaExecResults.getProcess()); return executionResults; }