Я видел эту проблему во многих местах, то есть проблема с программным созданием резервных копий из PostgreSQL.Мое решение состоит в том, чтобы использовать ExpectJ, но мне не удается заставить мой код работать.
У меня есть следующий код:
public class BackupUtility
{
public static void main(String[] args)
{
try
{
ExpectJ exp = new ExpectJ(20);
Spawn shell = exp.spawn("\"C:\\Program Files\\PostgreSQL\\8.4\\bin\\pg_dump.exe\" " +
"-h localhost -U myUserName myDB");
shell.expect("Password: ");
shell.send("myPassword");
System.out.println(shell.getCurrentStandardOutContents());
shell.expectClose()
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Однако в строке shell.expect этотайм-аут.
Когда я запускаю эту команду из командной строки, она выглядит следующим образом:
C: \ Documents and Settings \ bobjonesthe3rd> "C: \ Program Files \ PostgreSQL \ 8.4\ bin \ pg_dump "-h localhost -U myUserName myDBПароль:
Итак, я знаю, что он запрашивает пароль, но ExpectJ по какой-то причине не получает приглашение.
Любая помощь будет принята с благодарностью.
СпасибоМэтт