setOut() and redirectOutput() together (original) (raw)

Dawid Weiss dawid.weiss at gmail.com
Thu May 28 10:48:35 UTC 2015


Your code makes the native app inherit native stdout/err process descriptors, you need to pipe the output from your native app to Java and then redirect the output to wherever you wish (byte array for example).

In other words, Redirect.PIPE + pipe code.

Dawid

On Thu, May 28, 2015 at 12:43 PM, Weijun Wang <weijun.wang at oracle.com> wrote:

I am writing something like this

ByteArrayOutputStream bout = new ByteArrayOutputStream(); System.setOut(out); System.out.println("Hello"); ProcessBuilder pb1 = new ProcessBuilder("./native-app"); pb1.redirectOutput(ProcessBuilder.Redirect.INHERIT); pb1.start(); Now "Hello" no longer shows on screen, but the output of "native-app" still shows up there. What else shall I do? This is Ubuntu 14.04.2. Thanks Max



More information about the core-libs-dev mailing list