无法使用Java运行带有命令提示符的路径的命令?
我想在窗口命令提示符下运行程序命令。在执行命令之前,我必须指定程序的路径。我见过其他这样的问题,但大多数答案只有命令而没有路径无法使用Java运行带有命令提示符的路径的命令?,java,cmd,Java,Cmd,我想在窗口命令提示符下运行程序命令。在执行命令之前,我必须指定程序的路径。我见过其他这样的问题,但大多数答案只有命令而没有路径 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 a
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运行时,该命令是合法的
您可以使用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();
无需
cd
您可以使用绝对路径调用rsync,并使用ProcessBuilder将多个参数传递给cmd。