java - rdiff-backup java 运行时执行远程多参数问题

标签 java runtime exec rdiff-backup

我必须在 Java 中执行 rdiff-backup 命令。我绝望地尝试使用运行时执行从本地到远程的备份命令。

我需要使用远程架构,因为我无法连接到标准端口 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");

收到此错误: fatal error :错误的命令行选项:选项 -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);

收到此错误: fatal error :切换参数丢失或错误数量

感谢您的帮助...

最佳答案

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

关于java - rdiff-backup java 运行时执行远程多参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116552/

相关文章:

android - 在运行时重命名和更改 Android 资源文件的文件夹位置

c - 将 stdout 和 stderr 重定向到分布式 shell 程序的套接字

php - Apache权限执行exec函数

tcl - 如何在 Tcl/expect 中的 exec 命令中使用方括号 (Linux)

java - 没有待处理的回复 : ConsumerRecord

java - HttpSessionBindingListener 和 HttpSessionListener

android - 从代码 [API] 中在 Android 设备上编译 .java 代码?

java - Spring Security OpenID - UserDetailsS​​ervice,AuthenticationUserDetailsS​​ervice

java - Delayer 与 Splitter 一起,消息不串行处理

Java 反射 : How do I override or generate methods at runtime?