當前位置: 首頁>>代碼示例>>Java>>正文


Java DefaultExecutor.setWorkingDirectory方法代碼示例

本文整理匯總了Java中org.apache.commons.exec.DefaultExecutor.setWorkingDirectory方法的典型用法代碼示例。如果您正苦於以下問題:Java DefaultExecutor.setWorkingDirectory方法的具體用法?Java DefaultExecutor.setWorkingDirectory怎麽用?Java DefaultExecutor.setWorkingDirectory使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.commons.exec.DefaultExecutor的用法示例。


在下文中一共展示了DefaultExecutor.setWorkingDirectory方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: runMavenCommand

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
@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);
}
 
開發者ID:nodevops,項目名稱:confd-maven-plugin,代碼行數:27,代碼來源:MavenRunnerStepdefs.java

示例2: startJekyllCI

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
/**
 * 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;
}
 
開發者ID:adessoAG,項目名稱:jekyll2cms,代碼行數:28,代碼來源:JekyllService.java

示例3: compile

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
public void compile(String cwd, Submission submission) throws RuntimeException {
    ByteArrayOutputStream stderr = new ByteArrayOutputStream();
    ExecuteWatchdog watchdog = new ExecuteWatchdog(watchdogTimeout);

    DefaultExecutor executor = new DefaultExecutor();
    executor.setWorkingDirectory(new File(cwd));
    executor.setStreamHandler(new PumpStreamHandler(null, stderr, null));
    executor.setWatchdog(watchdog);

    CommandLine cmd = new CommandLine(javac);
    cmd.addArgument("-J-Duser.language=en");  // force using English
    cmd.addArgument("-classpath");
    cmd.addArgument(cwd);
    cmd.addArgument(fileName + ".java");
    logger.info("Compiler cmd:\t" + cmd.toString());

    try {
        executor.execute(cmd);
        logger.info("Compile OK");
    } catch (IOException e) {
        if (watchdog.killedProcess()) {
            submission.setStatus(Submission.STATUS_CE);
            submission.setError("Compile Time Exceeded");
            logger.warn("Compile Time Exceeded:\t" + e.getMessage());
        } else {
            submission.setStatus(Submission.STATUS_CE);
            submission.setError("Compile error");
            logger.warn("Compile error:\t" + e.getMessage());
        }
        logger.warn(stderr.toString());
        throw new RuntimeException("Compile Aborted.");
    }
}
 
開發者ID:justice-oj,項目名稱:dispatcher,代碼行數:34,代碼來源:JavaWorker.java

示例4: execute

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
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);
}
 
開發者ID:SonarSource,項目名稱:sonarlint-cli,代碼行數:25,代碼來源:CommandExecutor.java

示例5: exec

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
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);
    }
}
 
開發者ID:spirylics,項目名稱:web2app,代碼行數:20,代碼來源:Web2AppMojo.java

示例6: shouldNotOverwriteInputFile

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
@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));
}
 
開發者ID:strator-dev,項目名稱:greenpepper,代碼行數:22,代碼來源:ShadingTest.java

示例7: launchContrailServer

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
public static void launchContrailServer(int port) throws Exception {
    try {
        DefaultExecutor exec = new DefaultExecutor();
        int exitValues[] = {1};
        exec.setExitValues(exitValues);
         
        String workingDir = System.getProperty("user.dir");
        String path = workingDir + "/../../config/api-server/tests/";
        File f = new File(path);
        exec.setWorkingDirectory(f);
        exec.setStreamHandler(new PumpStreamHandler(new ByteArrayOutputStream()));
        CommandLine cmd = buildServerLaunchCmd(port);
        ExecuteResultHandler handler = null;
        exec.execute(cmd, handler);
        /* sleep 5 seconds for server to get started */
        Thread.sleep(5000);
    } catch (Exception e) {
        s_logger.debug(e);
        String cause = e.getMessage();
        if (cause.equals("python: not found"))
            System.out.println("No python interpreter found.");
        throw e; 
    }
}
 
開發者ID:Juniper,項目名稱:contrail-java-api,代碼行數:25,代碼來源:ApiTestCommon.java

示例8: execASync

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
public static ExecuteWatchdog execASync(String line, File workDir, Map<String, String> environment, OutputStream output, ExecuteResultHandler erh,
		long timeout) throws IOException {
	if (environment != null) {
		Map<String, String> sysenv = System.getenv();
		for (String key : sysenv.keySet()) {
			boolean contains = false;
			for (String k : environment.keySet()) {
				if (k.equalsIgnoreCase(key)) {
					contains = true;
					break;
				}
			}
			if (!contains)
				environment.put(key, sysenv.get(key));
		}
	}
	DefaultExecutor executor = new DefaultExecutor();
	if (workDir != null)
		executor.setWorkingDirectory(workDir);
	PumpStreamHandler sh = new PumpStreamHandler(output, output, null);
	executor.setStreamHandler(sh);
	ExecuteWatchdog watchdog = new ProcessTreeWatchDog(timeout);
	executor.setWatchdog(watchdog);
	executor.execute(CommandLine.parse(line), environment, erh);
	return watchdog;
}
 
開發者ID:slimsymphony,項目名稱:testgrid,代碼行數:27,代碼來源:CommonUtils.java

示例9: execute

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
public CommandResult execute(CommandLine commandLine, File workingDirectory, OutputStream outputStream) {

		CommandResult commandResult = new CommandResult();

		try {

			// create executor for command
			DefaultExecutor executor = new DefaultExecutor();

			// set working directory
			if (workingDirectory != null) {
				executor.setWorkingDirectory(workingDirectory);
			}

			// set possible exit values
			executor.setExitValues(IntStream.range(0, 255).toArray());

			// create output stream for command
			ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
			TeeOutputStream teeOutputStream = new TeeOutputStream(outputStream, byteArrayOutputStream);
			PumpStreamHandler streamHandler = new PumpStreamHandler(teeOutputStream);
			executor.setStreamHandler(streamHandler);

			// execute command
			int exitValue = executor.execute(commandLine);

			// fill command result
			commandResult.setOutput(byteArrayOutputStream.toString());
			commandResult.setSuccess(exitValue == 0 ? true : false);
		}
		catch(IOException e) {
			LOG.error(e.getMessage(), e);
		}

		return commandResult;
	}
 
開發者ID:chrisipa,項目名稱:cloud-portal,代碼行數:37,代碼來源:CommandExecutorService.java

示例10: executeProcess

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
/**
 * Creates a process and logs the output
 */
public void executeProcess(String[] cmd, String logKey, ProcessResult result,
    Map<String, String> additionalEnvVars, File workingDir) {

  Map<String, String> env = getEnvVars(cmd, additionalEnvVars);
  logger.info(format("%s Cmd: %s, Additional Env Vars: %s", logKey,
      String.join(" ", cmd), additionalEnvVars));

  try {
    CommandLine cmdLine = new CommandLine(cmd[0]);
    // add rest of cmd string[] as arguments
    for (int i = 1; i < cmd.length; i++) {
      // needs the quote handling=false or else doesn't work
      // http://www.techques.com/question/1-5080109/How-to-execute--bin-sh-with-commons-exec?
      cmdLine.addArgument(cmd[i], false);
    }
    DefaultExecutor executor = new DefaultExecutor();
    executor.setExitValue(0);
    executor.setWatchdog(new ExecuteWatchdog(timeoutInSeconds * 1000));
    executor.setStreamHandler(new OutputHandler(logger, logKey, result));
    if (workingDir != null) {
      executor.setWorkingDirectory(workingDir);
    }
    result.setResultCode(executor.execute(cmdLine, env));

    // set fault to last error if fault map is empty
    if (result.getResultCode() != 0 && result.getFaultMap().keySet().size() < 1) {
      result.getFaultMap().put("ERROR", result.getLastError());
    }

  } catch (ExecuteException ee) {
    logger.error(logKey + ee);
    result.setResultCode(ee.getExitValue());
  } catch (IOException e) {
    logger.error(e);
    result.setResultCode(1);
  }

}
 
開發者ID:oneops,項目名稱:oneops,代碼行數:42,代碼來源:ProcessRunner.java

示例11: bash

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
/**
 * using bash to execute the lines.
 *
 * @param lines
 *            the command lines
 * @param out
 *            the output stream
 * @param err
 *            the error stream
 * @param in
 *            the input stream
 * @param workdir
 *            the workdir
 * @return the int
 * @throws IOException
 *             throw IOException if error
 */
public static int bash(String lines, OutputStream out, OutputStream err, InputStream in, String workdir)
		throws IOException {

	File f = new File(UID.id(lines).toLowerCase() + ".bash");

	try {
		if (!X.isEmpty(workdir)) {
			lines = "cd " + workdir + ";" + lines;
		}
		FileUtils.writeStringToFile(f, lines);

		// Execute the file we just creted. No flags are due if it is
		// executed with bash directly
		CommandLine commandLine = CommandLine.parse("bash " + f.getCanonicalPath());

		ExecuteStreamHandler stream = new PumpStreamHandler(out, err, in);

		DefaultExecutor executor = new DefaultExecutor();
		int[] exit = new int[3];
		for (int i = 0; i < exit.length; i++) {
			exit[i] = i - 1;
		}
		executor.setExitValues(exit);

		executor.setStreamHandler(stream);
		if (!X.isEmpty(workdir)) {
			executor.setWorkingDirectory(new File(workdir));
		}

		return executor.execute(commandLine);

	} catch (IOException e) {
		log.error("lines=" + lines, e);
		throw e;
	} finally {
		f.delete();
	}
}
 
開發者ID:giiwa,項目名稱:giiwa,代碼行數:56,代碼來源:Shell.java

示例12: prepareDefaultExecutor

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
protected DefaultExecutor prepareDefaultExecutor(ExecCommand execCommand) {
    DefaultExecutor executor = new ExecDefaultExecutor();
    executor.setExitValues(null);

    if (execCommand.getWorkingDir() != null) {
        executor.setWorkingDirectory(new File(execCommand.getWorkingDir()).getAbsoluteFile());
    }
    if (execCommand.getTimeout() != ExecEndpoint.NO_TIMEOUT) {
        executor.setWatchdog(new ExecuteWatchdog(execCommand.getTimeout()));
    }
    executor.setProcessDestroyer(new ShutdownHookProcessDestroyer());
    return executor;
}
 
開發者ID:HydAu,項目名稱:Camel,代碼行數:14,代碼來源:DefaultExecCommandExecutor.java

示例13: executeCommand

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
private Future<CommandResult> executeCommand(String command, File executionDirectory, boolean silent)
		throws IOException {

	StringWriter writer = new StringWriter();
	DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();

	try (WriterOutputStream outputStream = new WriterOutputStream(writer)) {

		String outerCommand = "/bin/bash -lc";

		CommandLine outer = CommandLine.parse(outerCommand);
		outer.addArgument(command, false);

		DefaultExecutor executor = new DefaultExecutor();
		executor.setWorkingDirectory(executionDirectory);
		executor.setStreamHandler(new PumpStreamHandler(silent ? outputStream : System.out, null));
		executor.execute(outer, ENVIRONMENT, resultHandler);

		resultHandler.waitFor();

	} catch (InterruptedException e) {
		throw new IllegalStateException(e);
	}

	return new AsyncResult<CommandResult>(
			new CommandResult(resultHandler.getExitValue(), writer.toString(), resultHandler.getException()));
}
 
開發者ID:spring-projects,項目名稱:spring-data-dev-tools,代碼行數:28,代碼來源:CommonsExecOsCommandOperations.java

示例14: getDefaultExecutor

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
private static DefaultExecutor getDefaultExecutor(File dir, int expectedExit, long timeout) {
	DefaultExecutor executor = new DefaultExecutor();
	if(expectedExit != -1) {
		executor.setExitValue(expectedExit);
	} else {
		executor.setExitValues(null);
	}

	ExecuteWatchdog watchdog = new ExecuteWatchdog(timeout);
	executor.setWatchdog(watchdog);
	executor.setWorkingDirectory(dir);
	return executor;
}
 
開發者ID:centic9,項目名稱:commons-dost,代碼行數:14,代碼來源:ExecutionHelper.java

示例15: factorize

import org.apache.commons.exec.DefaultExecutor; //導入方法依賴的package包/類
private CommandExecutor factorize(File dir, String name, Command command) {
    DefaultExecutor executor = new DefaultExecutor();
    executor.setWorkingDirectory(dir);
    CommandExecutorStreamHandler executorStreamHandler = new CommandExecutorStreamHandler(name);
    executor.setStreamHandler(new PumpStreamHandler(executorStreamHandler));
    return new CommandExecutor(command, executor, executorStreamHandler::getOutput);
}
 
開發者ID:yu55,項目名稱:yagga,代碼行數:8,代碼來源:CommandExecutorFactory.java


注:本文中的org.apache.commons.exec.DefaultExecutor.setWorkingDirectory方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。