0
私はbashのを経由して、以下を実行することができ、それが動作します:のJavaランタイムのexec psqlのロギング
psql -h <host> -p <port> -d <dbname> -U <username> -w -v username="'user'" -v rid=2 -c '\ir ../../../resources/sql/myFile.sql'
私は以下を使用してJavaでコマンドを実行しようとすると、それは何もしませんが、それはdoesnのは、いずれかのエラーを投げる。 Javaのexecが何をしているのかを記録する方法はありますか?私はなぜそれが動作していないのか分かりますか?
try {
String line;
log.error("Working Directory = " +
System.getProperty("user.dir"));
Process p = Runtime.getRuntime().exec("psql -h <host> -p <port> -d <dbname> -U <username> -w -v username=\"'user'\" -v " +
"rid=2 -c '\\ir sql/myFile.sql'");
log.error("HERE");
BufferedReader input =new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
log.error(line);
}
input.close();
log.error("here2");
} catch (Exception e) {
log.error("Error occurred" + e.toString());
}
ここでは、ここにコンソールに出力しますが、エラーは発生しませんでした。
プロセスの終了値は、他の人が同様にこのに実行する場合は1