Java 类org.apache.commons.exec.DefaultExecutor 实例源码
项目:guetzliconverter
文件:ProcessExecutor.java
@Override
public Long call() throws Exception {
Executor executor = new DefaultExecutor();
executor.setProcessDestroyer(new ShutdownHookProcessDestroyer());
ExecuteWatchdog watchDog = new ExecuteWatchdog(watchdogTimeout);
executor.setWatchdog(watchDog);
executor.setStreamHandler(new PumpStreamHandler(new MyLogOutputStream(handler, true), new MyLogOutputStream(handler, false)));
Long exitValue;
try {
exitValue = new Long(executor.execute(commandline));
} catch (ExecuteException e) {
exitValue = new Long(e.getExitValue());
}
if (watchDog.killedProcess()) {
exitValue = WATCHDOG_EXIST_VALUE;
}
return exitValue;
}
项目:confd-maven-plugin
文件:MavenRunnerStepdefs.java
@When("I run maven with args: (.*)")
public void runMavenCommand(List<String> mvnArgs) throws IOException {
this.mvnArgs.addAll(mvnArgs);
System.out.println("Launching Maven with args <" + Joiner.on(" ").join(mvnArgs) + ">");
CommandLine cmdLine = new CommandLine(getCommandLine());
for (String mvnArg : mvnArgs) {
cmdLine.addArgument(mvnArg);
}
if (confdForCucumberLocation != null) {
cmdLine.addArgument("-Dcucumber.confd.binary.path=" + confdForCucumberLocation);
}
DefaultExecutor executor = new DefaultExecutor();
if (projectRootAsFile != null) {
executor.setWorkingDirectory(projectRootAsFile);
}
executor.setExitValue(expectedExitCode);
executor.setStreamHandler(new PumpStreamHandler(new LogOutputStream() {
@Override
protected void processLine(String line, int level) {
System.out.println(line);
executorOutput.add(line);
}
}));
exitCode = executor.execute(cmdLine, environment);
fullOutput = Joiner.on(LINE_SEPARATOR).join(executorOutput);
}
项目:stage-job
文件:ScriptUtil.java
/**
* 日志文件输出方式
*
* 优点:支持将目标数据实时输出到指定日志文件中去
* 缺点:
* 标准输出和错误输出优先级固定,可能和脚本中顺序不一致
* Java无法实时获取
*
* @param command
* @param scriptFile
* @param logFile
* @param params
* @return
* @throws IOException
*/
public static int execToFile(String command, String scriptFile, String logFile, String... params) throws IOException {
// 标准输出:print (null if watchdog timeout)
// 错误输出:logging + 异常 (still exists if watchdog timeout)
// 标准输入
FileOutputStream fileOutputStream = new FileOutputStream(logFile, true);
PumpStreamHandler streamHandler = new PumpStreamHandler(fileOutputStream, fileOutputStream, null);
// command
CommandLine commandline = new CommandLine(command);
commandline.addArgument(scriptFile);
if (params!=null && params.length>0) {
commandline.addArguments(params);
}
// exec
DefaultExecutor exec = new DefaultExecutor();
exec.setExitValues(null);
exec.setStreamHandler(streamHandler);
int exitValue = exec.execute(commandline); // exit code: 0=success, 1=error
return exitValue;
}
项目:jekyll2cms
文件:JekyllService.java
/**
* Starts the jekyll build process (jekyll build --incremental)
* @return true, if jekyll build was successful
*/
public boolean startJekyllCI() {
int exitValue = -1;
String line = JEKYLL_PATH;
ByteArrayOutputStream jekyllBuildOutput = new ByteArrayOutputStream();
CommandLine cmdLine = CommandLine.parse(line);
cmdLine.addArgument(JEKYLL_OPTION_BUILD);
cmdLine.addArgument(JEKYLL_OPTION_INCR);
DefaultExecutor executor = new DefaultExecutor();
executor.setWorkingDirectory(new File(LOCAL_REPO_PATH));
PumpStreamHandler streamHandler = new PumpStreamHandler(jekyllBuildOutput);
executor.setStreamHandler(streamHandler);
try {
LOGGER.info("Starting jekyll build");
exitValue = executor.execute(cmdLine);
LOGGER.info("Jekyll build command executed");
} catch (IOException e) {
LOGGER.error("Error while executing jekyll build. Error message: {}", e.getMessage());
e.printStackTrace();
return false;
}
printJekyllStatus(exitValue, jekyllBuildOutput.toString());
return true;
}
项目:commons-sandbox
文件:Tests.java
public static void main(String[] args) throws Exception {
String cmd = "/tmp/test.sh";
CommandLine cmdLine = CommandLine.parse("/bin/bash " + cmd);
ByteArrayOutputStream stdout = new ByteArrayOutputStream();
ByteArrayOutputStream stderr = new ByteArrayOutputStream();
PumpStreamHandler psh = new PumpStreamHandler(stdout, stderr);
psh.setStopTimeout(TIMEOUT_FIVE_MINUTES);
ExecuteWatchdog watchdog = new ExecuteWatchdog(TIMEOUT_TEN_MINUTES); // timeout in milliseconds
Executor executor = new DefaultExecutor();
executor.setExitValue(0);
executor.setStreamHandler(psh);
executor.setWatchdog(watchdog);
int exitValue = executor.execute(cmdLine, Collections.emptyMap());
System.out.println(exitValue);
}
项目:h2spec-maven-plugin
文件:H2SpecTestSuite.java
public static List<Failure> runH2Spec(File targetDirectory, int port, final int timeout, final int maxHeaderLength, final Set<String> excludeSpecs) throws IOException {
File reportsDirectory = new File(targetDirectory, "reports");
if (!reportsDirectory.exists()) {
reportsDirectory.mkdir();
}
File junitFile = new File(reportsDirectory, "TEST-h2spec.xml");
File h2spec = getH2SpecFile(targetDirectory);
Executor exec = new DefaultExecutor();
PumpStreamHandler psh = new PumpStreamHandler(System.out, System.err, System.in);
exec.setStreamHandler(psh);
exec.setExitValues(new int[]{0, 1});
psh.start();
if (exec.execute(buildCommandLine(h2spec, port, junitFile, timeout, maxHeaderLength)) != 0) {
return parseReports(reportsDirectory, excludeSpecs);
}
psh.stop();
return Collections.emptyList();
}
项目:xxl-job
文件:ScriptUtil.java
/**
* 日志文件输出方式
*
* 优点:支持将目标数据实时输出到指定日志文件中去
* 缺点:
* 标准输出和错误输出优先级固定,可能和脚本中顺序不一致
* Java无法实时获取
*
* @param command
* @param scriptFile
* @param logFile
* @param params
* @return
* @throws IOException
*/
public static int execToFile(String command, String scriptFile, String logFile, String... params) throws IOException {
// 标准输出:print (null if watchdog timeout)
// 错误输出:logging + 异常 (still exists if watchdog timeout)
// 标准输入
FileOutputStream fileOutputStream = new FileOutputStream(logFile, true);
PumpStreamHandler streamHandler = new PumpStreamHandler(fileOutputStream, fileOutputStream, null);
// command
CommandLine commandline = new CommandLine(command);
commandline.addArgument(scriptFile);
if (params!=null && params.length>0) {
commandline.addArguments(params);
}
// exec
DefaultExecutor exec = new DefaultExecutor();
exec.setExitValues(null);
exec.setStreamHandler(streamHandler);
int exitValue = exec.execute(commandline); // exit code: 0=success, 1=error
return exitValue;
}
项目:dispatcher
文件:CLikeWorker.java
public void compile(String cwd, Submission submission) throws RuntimeException {
CommandLine cmd = new CommandLine(compiler);
cmd.addArgument("-basedir=" + cwd);
cmd.addArgument("-compiler=" + realCompiler);
cmd.addArgument("-filename=" + fileName + "." + suffix);
cmd.addArgument("-timeout=" + watchdogTimeout);
cmd.addArgument("-std=" + std);
logger.info(cmd.toString());
ByteArrayOutputStream stderr = new ByteArrayOutputStream();
DefaultExecutor executor = new DefaultExecutor();
executor.setStreamHandler(new PumpStreamHandler(null, stderr, null));
try {
executor.execute(cmd);
if (stderr.toString().length() > 0) {
submission.setStatus(Submission.STATUS_CE);
submission.setError("Compile error");
logger.warn(stderr.toString());
throw new RuntimeException("Sandbox Aborted.");
}
logger.info("Compile OK");
} catch (IOException e) {
logger.warn("Compile error:\t" + e.getMessage());
throw new RuntimeException("An Error Occurred.");
}
}
项目:yadaframework
文件:YadaUtil.java
/**
* Esegue un comando di shell
* @param command comando
* @param args lista di argomenti (ogni elemento puo' contenere spazi), puo' essere null
* @param outputStream ByteArrayOutputStream che conterrà l'output del comando
* @return the error message (will be empty for a return code >0), or null if there was no error
*/
public String exec(String command, List<String> args, ByteArrayOutputStream outputStream) {
int exitValue=1;
try {
CommandLine commandLine = new CommandLine(command);
if (args!=null) {
for (String arg : args) {
commandLine.addArgument(arg, false); // Don't handle quoting
}
}
DefaultExecutor executor = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
executor.setStreamHandler(streamHandler);
log.debug("Executing shell command: {}", commandLine);
exitValue = executor.execute(commandLine);
} catch (Exception e) {
log.error("Failed to execute shell command: " + command + " " + args, e);
return e.getMessage();
}
return exitValue>0?"":null;
}
项目:sonarlint-cli
文件:CommandExecutor.java
public int execute(String[] args, @Nullable Path workingDir, Map<String, String> addEnv) throws IOException {
if (!Files.isExecutable(file)) {
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_EXECUTE);
Files.setPosixFilePermissions(file, perms);
}
ExecuteWatchdog watchdog = new ExecuteWatchdog(TIMEOUT);
CommandLine cmd = new CommandLine(file.toFile());
cmd.addArguments(args);
DefaultExecutor exec = new DefaultExecutor();
exec.setWatchdog(watchdog);
exec.setStreamHandler(createStreamHandler());
exec.setExitValues(null);
if (workingDir != null) {
exec.setWorkingDirectory(workingDir.toFile());
}
in.close();
LOG.info("Executing: {}", cmd.toString());
Map<String, String> env = new HashMap<>(System.getenv());
env.putAll(addEnv);
return exec.execute(cmd, env);
}
项目:piper
文件:Mediainfo.java
@Override
public Map<String,Object> handle (Task aTask) throws Exception {
CommandLine cmd = new CommandLine ("mediainfo");
cmd.addArgument(aTask.getRequiredString("input"));
log.debug("{}",cmd);
DefaultExecutor exec = new DefaultExecutor();
File tempFile = File.createTempFile("log", null);
try (PrintStream stream = new PrintStream(tempFile);) {
exec.setStreamHandler(new PumpStreamHandler(stream));
exec.execute(cmd);
return parse(FileUtils.readFileToString(tempFile));
}
catch (ExecuteException e) {
throw new ExecuteException(e.getMessage(),e.getExitValue(), new RuntimeException(FileUtils.readFileToString(tempFile)));
}
finally {
FileUtils.deleteQuietly(tempFile);
}
}
项目:piper
文件:Ffmpeg.java
@Override
public Object handle(Task aTask) throws Exception {
List<String> options = aTask.getList("options", String.class);
CommandLine cmd = new CommandLine ("ffmpeg");
options.forEach(o->cmd.addArgument(o));
log.debug("{}",cmd);
DefaultExecutor exec = new DefaultExecutor();
File tempFile = File.createTempFile("log", null);
try (PrintStream stream = new PrintStream(tempFile);) {
exec.setStreamHandler(new PumpStreamHandler(stream));
int exitValue = exec.execute(cmd);
return exitValue!=0?FileUtils.readFileToString(tempFile):cmd.toString();
}
catch (ExecuteException e) {
throw new ExecuteException(e.getMessage(),e.getExitValue(), new RuntimeException(FileUtils.readFileToString(tempFile)));
}
finally {
FileUtils.deleteQuietly(tempFile);
}
}
项目:piper
文件:Ffprobe.java
@Override
public Map<String,Object> handle(Task aTask) throws Exception {
CommandLine cmd = new CommandLine ("ffprobe");
cmd.addArgument("-v")
.addArgument("quiet")
.addArgument("-print_format")
.addArgument("json")
.addArgument("-show_error")
.addArgument("-show_format")
.addArgument("-show_streams")
.addArgument(aTask.getRequiredString("input"));
log.debug("{}",cmd);
DefaultExecutor exec = new DefaultExecutor();
File tempFile = File.createTempFile("log", null);
try (PrintStream stream = new PrintStream(tempFile);) {
exec.setStreamHandler(new PumpStreamHandler(stream));
exec.execute(cmd);
return parse(FileUtils.readFileToString(tempFile));
}
catch (ExecuteException e) {
throw new ExecuteException(e.getMessage(),e.getExitValue(), new RuntimeException(FileUtils.readFileToString(tempFile)));
}
finally {
FileUtils.deleteQuietly(tempFile);
}
}
项目:distGatling
文件:JarExecutor.java
private void runCancelJob(Master.Job message) {
if (getAbortStatus(message.abortUrl, message.trackingId)) {
CommandLine cmdLine = new CommandLine("/bin/bash");
cmdLine.addArgument(agentConfig.getJob().getJobArtifact("cancel"));
cmdLine.addArgument(message.jobId);
DefaultExecutor killExecutor = new DefaultExecutor();
ExecuteWatchdog watchdog = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT);
killExecutor.setWatchdog(watchdog);
try {
log.info("Cancel command: {}", cmdLine);
killExecutor.execute(cmdLine);
TaskEvent taskEvent = (TaskEvent) message.taskEvent;
String outPath = agentConfig.getJob().getOutPath(taskEvent.getJobName(), message.jobId);
String errPath = agentConfig.getJob().getErrorPath(taskEvent.getJobName(), message.jobId);
Worker.Result result = new Worker.Result(-9, agentConfig.getUrl(errPath), agentConfig.getUrl(outPath), null, message);
getSender().tell(new Worker.WorkFailed(result), getSelf());
} catch (IOException e) {
log.error(e, "Error cancelling job");
}
}
}
项目:distGatling
文件:ScriptExecutor.java
private void runCancelJob(Master.Job message) {
if (getAbortStatus(message.abortUrl, message.trackingId)) {
CommandLine cmdLine = new CommandLine("/bin/bash");
cmdLine.addArgument(agentConfig.getJob().getJobArtifact("cancel"));
cmdLine.addArgument(message.jobId);
DefaultExecutor killExecutor = new DefaultExecutor();
ExecuteWatchdog watchdog = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT);
killExecutor.setWatchdog(watchdog);
try {
log.info("Cancel command: {}", cmdLine);
killExecutor.execute(cmdLine);
} catch (IOException e) {
log.error(e, "Error cancelling job");
}
}
}
项目:web2app
文件:Web2AppMojo.java
void exec(String action, File dir, CommandLine cmdLine) {
String label = action + ": " + cmdLine;
try {
DefaultExecutor executor = new DefaultExecutor();
executor.setWorkingDirectory(dir);
Map<String, String> environment = EnvironmentUtils.getProcEnvironment();
environment.put("PATH", environment.get("PATH") + ":" + new File(frontendDirectory, "node").getAbsolutePath());
int exitValue = executor.execute(cmdLine, environment);
if (exitValue == 0) {
getLog().info(label + ": OK");
} else {
throw new MojoExecutionException("EXEC FAILURE: " + label);
}
} catch (RuntimeException re) {
throw re;
} catch (Exception e) {
throw new IllegalStateException("EXEC FAILURE: " + label, e);
}
}
项目:vespa
文件:ProcessExecutor.java
/**
* Executes the given command synchronously.
*
* @param command The command to execute.
* @param processInput Input provided to the process.
* @return The result of the execution, or empty if the process does not terminate within the timeout set for this executor.
* @throws IOException if the process execution failed.
*/
public Optional<ProcessResult> execute(String command, String processInput) throws IOException {
ByteArrayOutputStream processErr = new ByteArrayOutputStream();
ByteArrayOutputStream processOut = new ByteArrayOutputStream();
DefaultExecutor executor = new DefaultExecutor();
executor.setStreamHandler(createStreamHandler(processOut, processErr, processInput));
ExecuteWatchdog watchDog = new ExecuteWatchdog(TimeUnit.SECONDS.toMillis(timeoutSeconds));
executor.setWatchdog(watchDog);
executor.setExitValues(successExitCodes);
int exitCode;
try {
exitCode = executor.execute(CommandLine.parse(command));
} catch (ExecuteException e) {
exitCode = e.getExitValue();
}
return (watchDog.killedProcess()) ?
Optional.empty() : Optional.of(new ProcessResult(exitCode, processOut.toString(), processErr.toString()));
}
项目:gradle-mobile-plugin
文件:ExecUtil.java
public static ExecResult setupSudoCredentials(String password) {
ExecCommand execCommand = new ExecCommand("sudo");
execCommand.addArgument("--validate", false);
execCommand.addArgument("--stdin", false);
Executor executor = new DefaultExecutor();
executor.setWorkingDirectory(execCommand.getWorkingDirectory());
executor.setExitValues(execCommand.getExitValues());
ExecOutputStream execOutputStream = new ExecOutputStream();
executor.setStreamHandler(new PumpStreamHandler(execOutputStream, execOutputStream, new ExecInputStream(password)));
try {
executor.execute(execCommand);
} catch (IOException e) {
return new ExecResult(execOutputStream.getOutput(), e);
}
return new ExecResult(execOutputStream.getOutput());
}
项目:gradle-mobile-plugin
文件:ExecUtil.java
@Deprecated
public static ExecResult execCommand(CommandLine commandLine, File workDir, int[] exitValues, boolean routeToCapture, boolean routeToStdout) {
Executor executor = new DefaultExecutor();
if (workDir != null) {
executor.setWorkingDirectory(workDir);
}
if (exitValues != null) {
executor.setExitValues(exitValues);
}
ExecOutputStream execOutputStream = new ExecOutputStream(routeToCapture, routeToStdout);
PumpStreamHandler streamHandler = new PumpStreamHandler(execOutputStream);
executor.setStreamHandler(streamHandler);
try {
executor.execute(commandLine);
} catch (IOException e) {
return new ExecResult(false, execOutputStream.getOutput(), e);
}
return new ExecResult(true, execOutputStream.getOutput(), null);
}
项目:SWAT20
文件:PRISM.java
private String execToString(File model, File properties) throws ExecuteException, IOException {
String command;
String prism = (System.getProperty("os.name").contains("Windows"))? "prism.bat" : "prism";
if (mConverter.isBoundedNet()) {
command = mPrismPath + " " + model.getAbsolutePath() + " " + properties.getAbsolutePath()
+ " -exportstates " + mFilesPath+mStatesFileName;
} else {
command = mPrismPath + " " + model.getAbsolutePath() + " " + properties.getAbsolutePath() + " -ex";
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
CommandLine commandline = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream, errorStream);
//Workbench.consoleMessage("Executing: " + command);
exec.setStreamHandler(streamHandler);
System.out.println("Executing "+command);
exec.execute(commandline);
System.out.println("ID-Mapping: "+TransitionToIDMapper.getMapping());
return(outputStream.toString());
}
项目:moneta
文件:DropwizardContractTest.java
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("Java Temp Dir: " +System.getProperty("java.io.tmpdir"));
executor = new DefaultExecutor();
resultHandler = new DefaultExecuteResultHandler();
String javaHome = System.getProperty("java.home");
String userDir = System.getProperty("user.dir");
executor.setStreamHandler(new PumpStreamHandler(System.out));
watchdog = new ExecuteWatchdog(10000);
executor.setWatchdog(watchdog);
executor.execute(new CommandLine(javaHome + SystemUtils.FILE_SEPARATOR
+ "bin"+ SystemUtils.FILE_SEPARATOR+"java.exe").addArgument("-version"));
executor.execute(new CommandLine(javaHome + SystemUtils.FILE_SEPARATOR
+ "bin"+ SystemUtils.FILE_SEPARATOR+"java.exe")
.addArgument("-jar")
.addArgument(userDir + "/../moneta-dropwizard/target/moneta-dropwizard-" + ContractTestSuite.getProjectVersion() + ".jar")
.addArgument("server")
.addArgument("src/main/resources/dropwizard/moneta-dropwizard.yaml"), resultHandler);
Thread.sleep(3000);
System.out.println("Test sequence starting....");
}
项目:commons-dost
文件:DotUtils.java
/**
* Verify if dot can be started and print out the version to stdout.
*
* @return True if "dot -V" ran successfully, false otherwise
*
* @throws IOException If running dot fails.
*/
public static boolean checkDot() throws IOException {
// call graphviz-dot via commons-exec
CommandLine cmdLine = new CommandLine(DOT_EXE);
cmdLine.addArgument("-V");
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(0);
ExecuteWatchdog watchdog = new ExecuteWatchdog(60000);
executor.setWatchdog(watchdog);
executor.setStreamHandler(new PumpStreamHandler(System.out, System.err));
int exitValue = executor.execute(cmdLine);
if(exitValue != 0) {
System.err.println("Could not run '" + DOT_EXE + "', had exit value: " + exitValue + "!");
return false;
}
return true;
}
项目:greenpepper
文件:ShadingTest.java
@Test
public void testCommonsCodecsConflicts() throws IOException, VerificationException {
SetupContent setupContent = new SetupContent().invoke();
String shadedJar = setupContent.getShadedJar();
String issue24POM = setupContent.getIssue24POM();
String issue24TestFile = setupContent.getIssue24TestFile();
File cwdFile = setupContent.getCwdFile();
String line = String.format("java -jar %s -v -p %s %s %s", shadedJar, issue24POM, issue24TestFile,
StringUtils.join(new String[] {cwdFile.getAbsolutePath(), "testCommonsCodecsConflicts.html"}, File.separator));
CommandLine command = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayOutputStream err = new ByteArrayOutputStream();
executor.setStreamHandler(new PumpStreamHandler(out, err));
executor.execute(command);
}
项目:greenpepper
文件:ShadingTest.java
@Test
public void shouldNotOverwriteInputFile() throws IOException, VerificationException {
SetupContent setupContent = new SetupContent().invoke();
String shadedJar = setupContent.getShadedJar();
String issue24POM = setupContent.getIssue24POM();
String issue24TestFile = setupContent.getIssue24TestFile();
File specFile = new File(issue24TestFile);
File specBackupFile = new File(issue24TestFile + ".orig");
FileUtils.copyFile(specFile, specBackupFile);
String line = String.format("java -jar %s -v -p %s %s", shadedJar, issue24POM, issue24TestFile);
CommandLine command = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
executor.setWorkingDirectory(specFile.getParentFile());
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayOutputStream err = new ByteArrayOutputStream();
executor.setStreamHandler(new PumpStreamHandler(out, err));
executor.execute(command);
assertTrue("The specification should not be overriden by the output", FileUtils.contentEquals(specFile,specBackupFile));
}
项目:cppcheclipse
文件:AbstractCppcheckCommand.java
public AbstractCppcheckCommand(IConsole console, String[] defaultArguments,
long timeout, String binaryPath) {
this.binaryPath = binaryPath;
this.console = console;
this.defaultArguments = defaultArguments;
executor = new DefaultExecutor();
// all modes of operation returns 0 when no error occured,
executor.setExitValue(0);
watchdog = new ExecuteWatchdog(timeout);
executor.setWatchdog(watchdog);
out = new ByteArrayOutputStream();
err = new ByteArrayOutputStream();
processStdOut = new LineFilterOutputStream(new TeeOutputStream(out,
console.getConsoleOutputStream(false)), DEFAULT_CHARSET);
processStdErr = new LineFilterOutputStream(new TeeOutputStream(err,
console.getConsoleOutputStream(true)), DEFAULT_CHARSET);
}
项目:zeppelin
文件:ShellInterpreter.java
public void createSecureConfiguration() throws InterpreterException {
Properties properties = getProperties();
CommandLine cmdLine = CommandLine.parse(shell);
cmdLine.addArgument("-c", false);
String kinitCommand = String.format("kinit -k -t %s %s",
properties.getProperty("zeppelin.shell.keytab.location"),
properties.getProperty("zeppelin.shell.principal"));
cmdLine.addArgument(kinitCommand, false);
DefaultExecutor executor = new DefaultExecutor();
try {
executor.execute(cmdLine);
} catch (Exception e) {
LOGGER.error("Unable to run kinit for zeppelin user " + kinitCommand, e);
throw new InterpreterException(e);
}
}
项目:folder-monitor
文件:FolderOptions.java
/**
* Cleans up any commands that have been running by...
* - removing any commands that have finished.
* - deleting any files if needed.
* @return true if all the commands have finished.
*/
private boolean doCleanupOnCommandsFinished() {
ArrayList<String> deleteProcesses = new ArrayList<String>();
for (Map.Entry<String, DefaultExecutor> e : commandsRunning.entrySet()) {
if (!e.getValue().getWatchdog().isWatching()) {
deleteProcesses.add(e.getKey());
}
}
for (String deleteProcess : deleteProcesses) {
Logger.getLogger(FolderOptions.class).info("[Command Finished] " + getCommandToRun(deleteProcess));
if (deleteAfterCommand) {
Logger.getLogger(FolderOptions.class).info("[Removing File] " + deleteProcess);
new File(deleteProcess).delete();
}
commandsRunning.remove(deleteProcess);
}
return commandsRunning.isEmpty();
}
项目:p4workflow
文件:P4Server.java
public int getVersion() throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
CommandLine cmdLine = new CommandLine(p4d);
cmdLine.addArgument("-V");
DefaultExecutor executor = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
executor.setStreamHandler(streamHandler);
executor.execute(cmdLine);
int version = 0;
for (String line : outputStream.toString().split("\\n")) {
if (line.startsWith("Rev. P4D")) {
Pattern p = Pattern.compile("\\d{4}\\.\\d{1}");
Matcher m = p.matcher(line);
while (m.find()) {
String found = m.group();
found = found.replace(".", ""); // strip "."
version = Integer.parseInt(found);
}
}
}
logger.info("P4D Version: " + version);
return version;
}
项目:device
文件:ShellCommand.java
@SuppressWarnings("rawtypes")
public static void execAsync(String display, CommandLine commandline)
throws ShellCommandException {
log.debug("executing async command: " + commandline);
DefaultExecutor exec = new DefaultExecutor();
ExecuteResultHandler handler = new DefaultExecuteResultHandler();
PumpStreamHandler streamHandler = new PumpStreamHandler(
new PritingLogOutputStream());
exec.setStreamHandler(streamHandler);
try {
if (display == null || display.isEmpty()) {
exec.execute(commandline, handler);
} else {
Map env = EnvironmentUtils.getProcEnvironment();
EnvironmentUtils.addVariableToEnvironment(env, "DISPLAY=:"
+ display);
exec.execute(commandline, env, handler);
}
} catch (Exception e) {
throw new ShellCommandException(
"An error occured while executing shell command: "
+ commandline, e);
}
}
项目:poor-man-transcoder
文件:Session.java
private Session(Builder builder)
{
Session.id++;
this.config = builder.config;
this.source = builder.input;
this.cmdLine = builder.cmdLine;
this.cleanUpOnExit = builder.cleanUpOnExit;
this.setOutputs(builder.outputs);
this.executor = new DefaultExecutor();
// set this locally not globally -|
this.workingDirectoryPath = (builder.workingDirectoryPath == null || builder.workingDirectoryPath == "")?Globals.getEnv(Globals.Vars.WORKING_DIRECTORY):builder.workingDirectoryPath;
this.executonTimeout = ExecuteWatchdog.INFINITE_TIMEOUT;
this.watchdog = new ExecuteWatchdog(executonTimeout);
this.observers = new ArrayList<ISessionObserver>();
logger.info("Command :" + this.cmdLine.toString());
}
项目:compose-executor
文件:ProcessUtils.java
public static int executeCommand(String command,ExecuteWatchdog watchdog) {
CommandLine cmdLine = CommandLine.parse(command);
DefaultExecutor executor = new DefaultExecutor();
executor.setStreamHandler(new PumpStreamHandler(System.out,System.err, null));
executor.setExitValues(new int[]{0, 1});
if(watchdog != null){
executor.setWatchdog(watchdog);
}
int exitValue = 0;
try {
exitValue = executor.execute(cmdLine);
} catch (IOException e) {
exitValue = 1;
log.error("error executing command", e);
}
return exitValue;
}
项目:SHMACK
文件:ShmackUtils.java
public static ExecuteResult runOnLocalhost(ExecExceptionHandling exceptionHandling, CommandLine cmdLineOnLocalhost)
throws ExecuteException, IOException {
DefaultExecutor executor = new DefaultExecutor();
OutputsToStringStreamHandler streamHandler = new OutputsToStringStreamHandler();
executor.setStreamHandler(streamHandler);
executor.setExitValues(null);
int exitValue = executor.execute(cmdLineOnLocalhost);
ExecuteResult result = new ExecuteResult(streamHandler.getStandardOutput(), streamHandler.getStandardError(),
exitValue);
switch (exceptionHandling) {
case RETURN_EXIT_CODE_WITHOUT_THROWING_EXCEPTION:
break;
case THROW_EXCEPTION_IF_EXIT_CODE_NOT_0:
if (exitValue != 0) {
throw new ExecuteException("Failed to execute " + cmdLineOnLocalhost + " - Output: " + result,
exitValue);
}
break;
default:
break;
}
return result;
}
项目:movingcode
文件:PythonCLIProbe.java
public static boolean testExecutable() {
CommandLine commandLine = CommandLine.parse(PythonCLIProcessor.pythonExecutable + " --version");
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor executor = new DefaultExecutor();
// put a watchdog with a timeout
ExecuteWatchdog watchdog = new ExecuteWatchdog(new Long(timeout_seconds) * 1000);
executor.setWatchdog(watchdog);
try {
executor.execute(commandLine, resultHandler);
resultHandler.waitFor();
int exitVal = resultHandler.getExitValue();
if (exitVal != 0) {
return false;
}
return true;
}
catch (Exception e) {
return false;
}
}
项目:movingcode
文件:RCLIProbe.java
private static boolean testExecutable() {
CommandLine commandLine = CommandLine.parse(RCLIProcessor.rExecutable + " " + VERSION_CALL);
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor executor = new DefaultExecutor();
// put a watchdog with a timeout
ExecuteWatchdog watchdog = new ExecuteWatchdog(new Long(TIMEOUT_SECONDS) * 1000);
executor.setWatchdog(watchdog);
try {
executor.execute(commandLine, resultHandler);
resultHandler.waitFor();
int exitVal = resultHandler.getExitValue();
if (exitVal != 0) {
return false;
}
return true;
}
catch (Exception e) {
return false;
}
}
项目:event-store-maven-plugin
文件:EventStoreDownloadMojo.java
private static void applyFileMode(final File file, final FileMode fileMode)
throws MojoExecutionException {
if (OS.isFamilyUnix() || OS.isFamilyMac()) {
final String smode = fileMode.toChmodStringFull();
final CommandLine cmdLine = new CommandLine("chmod");
cmdLine.addArgument(smode);
cmdLine.addArgument(file.getAbsolutePath());
final Executor executor = new DefaultExecutor();
try {
final int result = executor.execute(cmdLine);
if (result != 0) {
throw new MojoExecutionException("Error # " + result + " while trying to set mode \""
+ smode + "\" for file: " + file.getAbsolutePath());
}
} catch (final IOException ex) {
throw new MojoExecutionException("Error while trying to set mode \"" + smode + "\" for file: "
+ file.getAbsolutePath(), ex);
}
} else {
file.setReadable(fileMode.isUr() || fileMode.isGr() || fileMode.isOr());
file.setWritable(fileMode.isUw() || fileMode.isGw() || fileMode.isOw());
file.setExecutable(fileMode.isUx() || fileMode.isGx() || fileMode.isOx());
}
}
项目:trainbenchmark
文件:GeneratorRunner.java
public static int run(final GeneratorConfig gc, final ExecutionConfig ec) throws IOException, InterruptedException {
final File configFile = File.createTempFile("trainbenchmark-generator-", ".conf");
final String configPath = configFile.getAbsolutePath();
gc.saveToFile(configPath);
final String projectName = String.format("trainbenchmark-generator-%s", gc.getProjectName());
final String jarPath = String.format("../%s/build/libs/%s-1.0.0-SNAPSHOT-fat.jar", projectName, projectName);
final String javaCommand = String.format("java -Xms%s -Xmx%s -server -jar %s %s", ec.getXms(), ec.getXmx(),
jarPath, configPath);
final CommandLine cmdLine = CommandLine.parse(javaCommand);
final DefaultExecutor executor = new DefaultExecutor();
try {
final int exitValue = executor.execute(cmdLine);
System.out.println();
return exitValue;
} catch (final ExecuteException e) {
e.printStackTrace(System.out);
return e.getExitValue();
}
}
项目:adb4j
文件:CmdExecutor.java
private CmdResultHandler runAsync(String command, CmdResultHandler resultHandler, boolean shouldClone) throws IOException, IOException, IOException, IOException {
CmdResultHandler handler = shouldClone ? resultHandler.clone() : resultHandler;
PumpStreamHandler streamHandler = handler.getStreamHandler(this);
Executor executor = new DefaultExecutor();
executor.setStreamHandler(streamHandler);
// String[] arguments = CommandLine.parse(command).toStrings();
// CommandLine cmdLine = new CommandLine(arguments[0]);
// for (int i = 1; i < arguments.length; i++) {
// cmdLine.addArgument(command, true);
// }
CommandLine cmdLine = CommandLine.parse(command);
executor.execute(cmdLine, getEnvironment(), handler.delegate);
return handler;
}
项目:sakuli
文件:CommandLineUtil.java
static public CommandLineResult runCommand(String command, boolean throwException) throws SakuliException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ByteArrayOutputStream error = new ByteArrayOutputStream();
CommandLineResult result = new CommandLineResult();
try {
DefaultExecutor executor = new DefaultExecutor();
executor.setStreamHandler(new PumpStreamHandler(outputStream, error));
int exitCode = executor.execute(CommandLine.parse(command));
result.setExitCode(exitCode);
result.setOutput(error.toString() + outputStream.toString());
} catch (Exception e) {
if (throwException) {
throw new SakuliException(e, String.format("Error during execution of command '%s': %s", command, error.toString()));
}
result.setExitCode(resolveExitCode(e.getMessage()));
result.setOutput(e.getMessage());
}
return result;
}
项目:Edge-Node
文件:AlchemyEngine.java
public static void learn(String path, String factsForLearningFile,
String rulesDefinitionFile, String learnedWeightsFile)
throws Exception {
CommandLine cmdLine = new CommandLine(path + "/learnwts");
cmdLine.addArgument("-i");
cmdLine.addArgument(factsForLearningFile);
cmdLine.addArgument("-o");
cmdLine.addArgument(rulesDefinitionFile);
cmdLine.addArgument("-t");
cmdLine.addArgument(learnedWeightsFile);
cmdLine.addArgument("-g -multipleDatabases");
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
ExecuteWatchdog watchdog = new ExecuteWatchdog(60 * 1000);
Executor executor = new DefaultExecutor();
executor.setExitValue(1);
executor.setWatchdog(watchdog);
executor.execute(cmdLine, resultHandler);
resultHandler.waitFor();
}
项目:werval
文件:MavenDevShellSPI.java
@Override
protected void doRebuild()
throws DevShellRebuildException
{
System.out.println( "Reload!" );
DefaultExecutor executor = new DefaultExecutor();
ByteArrayOutputStream output = new ByteArrayOutputStream();
executor.setStreamHandler( new PumpStreamHandler( output ) );
try
{
int exitValue = executor.execute( cmdLine );
if( exitValue != 0 )
{
throw new DevShellRebuildException(
new MavenExecutionException( "Maven exited with a non-zero status: " + exitValue, pom )
);
}
}
catch( Exception ex )
{
throw new DevShellRebuildException( ex, output.toString() );
}
}