rdiff备份java运行时exec远程多参数问题
我必须用Java执行rdiff备份命令。我尝试在运行时从本地到远程执行备份命令 我需要使用远程模式,因为我无法连接到standart端口22 由于相同的命令在windows shell中工作,远程命令拒绝工作,我尝试了以下方法: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
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);