0
我有一個執行psql命令來導入SQL腳本文件的.bat文件。當我從Windows命令行執行.bat文件時,它會正確執行。但是當我從Java(使用ProcessBuilder)調用.bat文件時,腳本不會結束。我沒有收到任何錯誤,不在InputStream中,ErrorStream甚至在DB(Postgresql)日誌中都沒有。從Java執行時未提交的Psql腳本
ArrayList<String> cmdArgs2 = new ArrayList<String>();
cmdArgs2.add("sql2dbs.bat");
ProcessBuilder pb2 = new ProcessBuilder(cmdArgs2);
logger.info(pb2.command().toString());
Map<String, String> env = pb2.environment();
env.put("PGPASSWORD", "user");
Process p2 = pb2.start();
BufferedReader stdError2 = new BufferedReader(new InputStreamReader(p2.getErrorStream()));
String s;
while ((s = stdError2.readLine()) != null) {
logger.info(s);
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(p2.getInputStream()));
while ((s = stdIn.readLine()) != null) {
logger.info(s);
}
p2.waitFor();
SQL腳本非常長,這就是爲什麼我不添加它。該腳本底部有一個COMMIT語句。
任何想法?謝謝,