rdiff-backup Java Runtime Exec Проблемы с несколькими аргументами
Я должен выполнить команды rdiff-backup в Java. Я отчаянно пытаюсь выполнить команду резервного копирования с локального на удаленный с помощью Runtime.
Мне нужно использовать удаленную схему, потому что я не могу подключиться к стандартному порту 22.
Поскольку те же команды работают в оболочке Windows, удаленные команды отказываются работать, я пробовал что-то вроде этого:
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 ответ
Первый метод, который вы используете, хорошо в Java. Но ваша командная строка неверна - ssh -C - неправильная команда. Убедитесь, что команда работает в вашей оболочке, а затем используйте ее в вашем первом методе.