setOut() and redirectOutput() together
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