Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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
rdiff备份java运行时exec远程多参数问题_Java_Runtime_Exec_Rdiff Backup - Fatal编程技术网

rdiff备份java运行时exec远程多参数问题

rdiff备份java运行时exec远程多参数问题,java,runtime,exec,rdiff-backup,Java,Runtime,Exec,Rdiff Backup,我必须用Java执行rdiff备份命令。我尝试在运行时从本地到远程执行备份命令 我需要使用远程模式,因为我无法连接到standart端口22 由于相同的命令在windows shell中工作,远程命令拒绝工作,我尝试了以下方法: Runtime r = Runtime.getRuntime(); Process proc = r.exec("C:/rdiff/rdiff-backup.exe " +"--remote-schema=" +"ssh -C -p16000 %s rdiff-back

我必须用Java执行rdiff备份命令。我尝试在运行时从本地到远程执行备份命令

我需要使用远程模式,因为我无法连接到standart端口22

由于相同的命令在windows shell中工作,远程命令拒绝工作,我尝试了以下方法:

Runtime r = Runtime.getRuntime();
Process proc = r.exec("C:/rdiff/rdiff-backup.exe "
+"--remote-schema="
+"ssh -C -p16000 %s rdiff-backup --server "
+"C:/Users/Utilisateur/Desktop/backup "
+"user@xxx.net::/var/backup");
获取此错误:致命错误:错误的命令行选项:无法识别选项-C

获取此错误:致命错误:缺少开关或参数数量错误


感谢您的帮助…

您使用的第一种方法在java中是可以的。但是您的命令行是错误的-ssh-C不是正确的命令。确保命令在shell中工作,然后在第一个方法中使用它。

在java中使用的第一个方法是可以的。但是您的命令行是错误的-ssh-C不是正确的命令。确保该命令在shell中有效,然后在第一个方法中使用它。

非常感谢!最后,它可以使用:Process proc=r.exec(“C:/rdiff/rdiff-backup.exe”+“--remote schema”+“\”ssh-p16000%s rdiff backup--server\”+“C:/Users/usilisateur/Desktop/backup”+”user@xxx.net::/var/backups”);但是我没有得到InputStream为=proc.getInputStream()的答案(希望是0);结果=新的BufferedReader(新的InputStreamReader(is)).lines().collect(Collector.joining(“\n”));有关读取命令输出的解决方案,请参阅。非常感谢!最后,它可以使用:Process proc=r.exec(“C:/rdiff/rdiff-backup.exe”+“--remote schema”+“\”ssh-p16000%s rdiff backup--server\”+“C:/Users/usilisateur/Desktop/backup”+”user@xxx.net::/var/backups”);但是我没有得到InputStream为=proc.getInputStream()的答案(希望是0);结果=新的BufferedReader(新的InputStreamReader(is)).lines().collect(Collector.joining(“\n”));有关从命令读取输出的解决方案,请参阅
String[] commandLine= {"C:/rdiff/rdiff-backup.exe",
"C:/Users/Utilisateur/Desktop/backup",
"\"-p 16000 user@xxx.net\"",
"::/var/backups"};

Runtime r = Runtime.getRuntime();
Process proc = r.exec(commandLine);