Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Java运行带有命令提示符的路径的命令?_Java_Cmd - Fatal编程技术网

无法使用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。