code: import java.io.IOException;
  import java.io.InputStream;
  
  public class MainEntry {
      public static void main(String[] args) {
          // the command to execute
          executeCmd("ls -oa");
      }
  
      private static void executeCmd(String string) {
          InputStream pipedOut = null;
          try {
              Process aProcess = Runtime.getRuntime().exec(string);
  
              // These two thread shall stop by themself when the process end
              Thread pipeThread = new Thread(new StreamGobber(aProcess.getInputStream()));
              Thread errorThread = new Thread(new StreamGobber(aProcess.getErrorStream()));
  
              pipeThread.start();
              errorThread.start();
  
              aProcess.waitFor();
          } catch (IOException e) {
              e.printStackTrace();
          } catch (InterruptedException ie) {
              ie.printStackTrace();
          }
      }
  }
  
  //Replace the following thread with your intends reader
  class StreamGobber implements Runnable {
  
      private InputStream Pipe;
  
      public StreamGobber(InputStream pipe) {
          if(pipe == null) {
              throw new NullPointerException("bad pipe");
          }
          Pipe = pipe;
      }
  
      public void run() {
          try {
              byte buffer[] = new byte[2048];
  
              int read = Pipe.read(buffer);
              while(read >= 0) {
                  System.out.write(buffer, 0, read);
  
                  read = Pipe.read(buffer);
              }
          } catch (IOException e) {
              e.printStackTrace();
          } finally {
              if(Pipe != null) {
                  try {
                      Pipe.close();
                  } catch (IOException e) {
                  }
              }
          }
      }
  }
  