我想用窗口命令提示符运行程序命令。我必须在执行命令之前指定程序的路径。我已经看到了其他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运行时,该命令是合法的
答案 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();