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 - неправильная команда. Убедитесь, что команда работает в вашей оболочке, а затем используйте ее в вашем первом методе.

Другие вопросы по тегам