rdiff-backup java运行时exec远程多args问题

时间:2016-05-09 13:03:11

标签: java runtime exec rdiff-backup

我必须在Java中执行rdiff-backup命令。我决定尝试使用Runtime执行从本地到远程的备份命令。

我需要使用远程模式,因为我无法连接到标准端口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无法识别

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);

收到此错误:致命错误:切换缺失或参数数量错误

感谢您的帮助......

1 个答案:

答案 0 :(得分:0)

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