Я знаю, что есть много решаемых вопросов относительно выполнения процессов из java. Но я не могу решить свою проблему, используя предоставленные ответы. Я пытаюсь создать резервную копию базы данных postgresql из приложения java. Я использую следующий кодJava ProcessBuilder с несколькими параметрами с пробелами
//ProcessBuilder probuilder = new ProcessBuilder(new String[]{"cmd","/c","D:/PostgreSQL 8.2/bin/pg_dump.exe","-U","usr","-i","-h","localhost","-p","5432","-F","c","-b","-f","D:/backup test/backups/test_27-1-2013_210.backup", "test"});
//ProcessBuilder probuilder = new ProcessBuilder(new String[]{"cmd","/c","D:\\PostgreSQL 8.2\\bin\\pg_dump.exe","-U","usr","-i","-h","localhost","-p","5432","-F","c","-b","-f","D:\\backup test\\backups\\test_27-1-2013_210.backup", "test"});
ProcessBuilder probuilder = new ProcessBuilder(new String[]{"cmd","/c","\"D:\\PostgreSQL 8.2\\bin\\pg_dump.exe\"","-U","usr","-i","-h","localhost","-p","5432","-F","c","-b","-f","\"D:\\backup test\\backups\\test_27-1-2013_210.backup\"", "test"});
Map<String, String> env = probuilder.environment();
env.put("PGPASSWORD", "mypass");
final Process process = probuilder.start();
После выполнения выше кода я получаю следующее сообщение об ошибке: D:\PostgreSQL' is not recognized as an internal or external command, operable program or batch file.
Проблема встречается, только тогда, когда путь к файлу резервной копии содержит пробелы создается в противном случае резервное копирование. Я попытался использовать как слэш, так и обратную косую черту в пути к файлу, и я процитировал путь к файлу, но каждый раз получаю ту же ошибку. Команда может быть выполнена из командной строки.
Что я делаю неправильно. Существуют ли некоторые ограничения относительно количества параметров с пробелами в ProcessBuilder.
Вы - мужчина. Это вызвало проблему. Большое спасибо – user2115093
@ user2115093 спасибо, и добро пожаловать в переполнение стека. Когда вы получите ответ, который решает вашу проблему, это хорошие манеры для _accept_, нажав на отметку слева. Создание послужной список для принятия хороших ответов - это способ побудить больше людей помочь с вашими будущими вопросами. –
Я планировал это сделать, но я не мог найти сначала, где мне нужно щелкнуть. еще раз спасибо – user2115093