运行命令使用带有命令提示符的PATH使用Java?

时间:2014-06-03 08:58:55

标签: java cmd

我想用窗口命令提示符运行程序命令。我必须在执行命令之前指定程序的路径。我已经看到了其他SO问题,但大多数答案只有没有路径的命令。

try {

Runtime rt = Runtime.getRuntime();
String str ="C:/Rsync/rsync -v -e ssh /cygdrive/c/test/from.zip zulkifli@address:/home/zulkifli/test/";   //put path and command

//i put path and command to str string but this will return error 
Process process = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c",str});
rt.exec("cmd.exe /c start command");

System.out.println(str);

} catch (Exception ex) {}

如果我们从命令提示符手动执行,我们可以使用cd path / ..插入路径,然后输入命令。

但我们如何用java编程?以下是我执行程序时的错误。当我在cmd运行时,该命令是合法的

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用ProcessBuilder构建流程,不要cd,不要调用cmd.exe

    String commands = "C:/Rsync/rsync -v -e ssh /cygdrive/c/test/from.zip zulkifli@address:/home/zulkifli/backup_data/";
    String[] commandArray = commands.split("\\s+");
    ProcessBuilder processBuilder = new ProcessBuilder(commandArray);
    Process process = processBuilder.start();
    process.waitFor();