2015-11-26 2 views
0

Я пытаюсь сделать резервную копию моей базы данных в PosgreSQL с помощью Java, но когда я запускаю свою программу, я получаю эту ошибку:создать DB резервного копирования PostgreSQL с помощью Java

Exception in thread "main" java.io.IOException: Cannot run program "pg_dump": CreateProcess error=2, specified file not found

Это мой код

 String path = "C:\\Program Files (x86)\\PostgreSQL\\9.1\\bin\\pg_dump.exe"; 
Runtime r = Runtime.getRuntime(); 

//PostgreSQL variables  
String host = "localhost"; 
String user = "postgres"; 
String dbase = "GestionPharmacie"; 
String password = "*****"; 
Process p; 
ProcessBuilder pb; 


r = Runtime.getRuntime();   
pb = new ProcessBuilder("pg_dump", "-v", "-h", host, "-f", path, "-U", user, dbase); 
pb.environment().put("PGPASSWORD", password); 
pb.redirectErrorStream(true); 
p = pb.start(); 
+0

Вы попробовали это 'SELECT * INTO OUTFILE имя файла FROM tablename'. – Satya

+0

@ Сатья: в Postgres нет 'select .. in outfile ...'. –

+1

"* указанный файл не найден *" довольно очевиден: вам нужно предоставить полный путь к исполняемому файлу, например '' c: \\ Program Files \\ PostgreSQL \\ 9.4 \\ bin \\ pg_dump "' –

ответ

0

-D - недопустимый параметр, и я помещаю атрибут хоста.

{ 
    String path = "D:\\aaa"; 
    Runtime r = Runtime.getRuntime(); 

    //PostgreSQL variables  
    String host = "localhost"; 
    String user = "postgres"; 
    String dbase = "GestionPharmacie"; 
    String password = "*****"; 
    Process p; 
    ProcessBuilder pb; 


    r = Runtime.getRuntime();   
    pb = new ProcessBuilder("pg_dump", "-v", "-h", host, "-f", path, "-U", user, dbase); 
    pb.environment().put("PGPASSWORD", password); 
    pb.redirectErrorStream(true); 
    p = pb.start();   

} catch (Exception e) { 
+0

У меня ничего нет, я не нашел файл резервной копии в пути – khadi8

+0

Я получаю эту ошибку Исключение в потоке "main "java.io.IOException: не удается запустить программу" pg_dump ": CreateProcess error = 2, указанный файл не найден – khadi8

+2

Уверен, какова ваша среда для запуска pg_dump ?, вы используете систему Windows ?, если true, поставьте полный путь к установке pg_dump («C: \\ Program Files \\ PostgreSQL \\ VERSION \\ bin \\ pg_dump.exe») –

Смежные вопросы