2016-05-24 17 views
0

ich folgende über bash ausführen kann und es wird funktionieren:Java-Runtime-exec psql Protokollierung

psql -h <host> -p <port> -d <dbname> -U <username> -w -v username="'user'" -v rid=2 -c '\ir ../../../resources/sql/myFile.sql' 

Wenn ich versuche, den Befehl in Java unter Verwendung der folgenden auszuführen, wird es nichts tun, aber es doesn‘ t werfen auch einen Fehler. Gibt es eine Möglichkeit, dass ich protokollieren kann, was die Exec in Java macht, damit ich sehen kann, warum es nicht funktioniert?

HIER und here2 auf der Konsole ausdrucken, aber nichts in Fehler aufgetreten.

Der Prozess Exit-Wert ist 1.

Antwort

0

Bei anderen Menschen auch in diesem Lauf. Ich war in der Lage, um mehr Informationen über Fehler zu erhalten, indem Sie die folgende Verwendung:

 InputStream stderr = p.getErrorStream(); 
     InputStreamReader isr = new InputStreamReader(stderr); 
     BufferedReader br = new BufferedReader(isr); 
     System.out.println("<ERROR>"); 
     while ((line = br.readLine()) != null) 
      System.out.println(line); 
     System.out.println("</ERROR>"); 
     int exitVal = p.waitFor(); 
     System.out.println("Process exitValue: " + exitVal); 

ich dies in diesem Artikel gefunden: http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html

Verwandte Themen