Это команда, которую я хочу запустить:Runtime.exec() не может работать "су - Postgres -c 'pg_dump ..."
su - postgres -c "pg_dump ....."
для резервного копирования базы данных Postgres.
Если я сейчас в linux shell, в качестве корня, он отлично работает.
Но теперь, я хочу, чтобы запустить его из приложения Java, как:
String cmd = "su - postgres -c \"pg_dump --port 5432 .....\""
Process p = Runtime.getRuntime().exec(cmd);
// read the error stream and input stream
p.waitFor();
Он выдает ошибку:
su: unknown option "--port"
please try "su --help" to get more information
Теперь я изменить код, как:
Process p = Runtime.getRuntime().exec(new String[0]{cmd});
// read the error stream and input stream
p.waitFor();
Cannot run program "su - postgres -c \"pg_dump .....\"": java.io.IOException: error=2, no that file or directory
Что мне теперь делать?
Должен сказать, что это самый простой способ. спасибо – Freewind