¿Por qué debería evitar usar Runtime.exec () en java?

   Process p = Runtime.getRuntime().exec(command);
   is = p.getInputStream();
   byte[] userbytes = new byte[1024];
   is.read(userbytes);

Quiero ejecutar un comando de shell en Linux OS desde Java. Pero los informes de pmd dicen que no uses java Runtime.exec (). ¿Por qué? Cual es la razon ? ¿Hay alguna alternativa para Runtime.exec ()?