devxlogo

Another Way to Execute a Process Without a Hang

Another Way to Execute a Process Without a Hang

This is in response to the tip Execute a Process Without a Hang. When I need to stdin, stdout and stderr at the same time, I use different threads to handle them.Here’s the code:

    final Process p = Runtime.getRuntime().exec("/usr/bin/abc");    Thread perr = new Thread() {            public void run() {                     BufferedReader din = new BufferedReader(new InputStreamReader(p.getErrorStream()));                     String s;                     try {                             while ( (s = din.readLine()) != null ) {                                     System.err.println("err stream: "+s);                            }                             din.close();                    }                      catch (IOException e ) { }             }    };    final Writer jspOut = out;    Thread pout = new Thread() {            public void run() {                     BufferedReader din = new BufferedReader(new InputStreamReader(p.getInputStream()));                     String s;                     try {                             while ( (s = din.readLine()) != null ) {                                     jspOut.write(s);                                    jspOut.write("
"); jspOut.flush(); } din.close(); } catch (IOException e ) { } } }; perr.start(); pout.start(); final BufferedReader urlBR = new BufferedReader(new InputStreamReader(new URL(url).openStream())); final Writer pWriter = new BufferedWriter(new OutputStreamWriter(p.getOutputStream())); String line = ""; while((line = urlBR.readLine()) != null) { pWriter.write(line); pWriter.write(" "); pWriter.flush(); } urlBR.close(); pWriter.close(); p.waitFor();
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist