Сначала я запустил этот код без начального "cmd"
и получил сообщение об отказе в доступе. Postgres запускается как служба с учетной записью, в которую невозможно войти, и я являюсь администратором, запускающим это приложение. Попытка с включенным "cmd"
не возвращает мне никакого ввода. Мой вопрос заключается в том, как мне выполнить эти операторы для достижения результирующих файлов и изменений данных?
String[] psqlCommands = {"cmd ",postgresLocation, " -dDatabase ", " -UUser ",
"-c ", "UPDATE host.user SET service = 1 WHERE service = 1;" +
"UPDATE host.permission SET service = 1 WHERE service = 2"};
Runtime.getRuntime().exec(psqlCommands);
String[] pgDumpCommands = {"cmd ", postgresLocation, " --data-only ",
"-t host.user_info -t host.permission -t host.group -t host.account -t host.password " +
"-UUser Database> "
+ DATA + "\\dataExport.sql"};
Runtime.getRuntime().exec(pgDumpCommands);
Сгенерированное исключение - это исключение Access Denied
, которое находится в каталоге Postgres_Bin
. Я отправлю след, как только получу необходимые материалы.
Exception in thread "main" java.io.IOException: Cannot run program "d:\program f
iles\postgres\bin": CreateProcess error=5, Access is denied<br>
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)<br>
at java.lang.Runtime.exec(Unknown Source)<br>
at Thing.main(Thing.java:85)<br>
Caused by: java.io.IOException: CreateProcess error=5, Access is denied<br>
at java.lang.ProcessImpl.create(Native Method)<br>
at java.lang.ProcessImpl.<init>(Unknown Source)<br>
at java.lang.ProcessImpl.start(Unknown Source)<br>
... 4 more