- static Runtime getRuntimeO: devuelve el objeto Runtime asociado con la aplicación Java en curso.
- Process exec(String comando): ejecuta la orden especificada en comando en un proceso separado. Devuelve un objeto Process, que se puede utilizar para controlar la interacción del programa Java con el nuevo proceso en ejecución. La orden puede ser cualquier comando del sistema operativo. Puede lanzar varias excepciones: SecurityException (si existe un gestor de seguridad y no se permite la ejecución de subprocesos), IOException (error de E/S), NullPointerException (el comando es nulo) y IllegalArgumentException (el comando está vacío).
Ejemplo1 de cómo se puede ejecutar una aplicación de Windows, el NOTEPAD:
public class Ejemplo1{ public static void main(String[] args) { Runtime r=Runtime.getRuntime(); String comando="notepad"; Process p; try { p=r.exec(comando); }catch (Exception e){ System.out.println("Error en: "+comando); e.printStackTrace(); } } }
Al ejecutar el programa se abre el bloc de notas.
Recuerda introducir en las variables PATH del sistema (botón derecho sobre "este equipo", "propiedades", "configuración avanzada del sistema", en la pestaña "opciones avanzdas", botón "variables de entorno") la ruta de los ejecutables de java, que es encuentran en C:\Program Files\Java\jdk1.8.0_121\bin para poder trabajar desde el CMD.
Compilamos y nos genera un fichero Ejemplo1.class D:\material\2ºDam\ejercicios\javac Ejemplo1.java Ejecutamos D:\material\2ºDam\ejercicios\java Ejemplo1
Ejemplo2
import java.io.*; public class Ejemplo2{ public static void main(String[] args) { Runtime r=Runtime.getRuntime(); String comando="CMD /C DIR"; Process p=null; try { p=r.exec(comando); InputStream is=p.getInputStream(); BufferedReader br= new BufferedReader(new InputStreamReader(is)); String linea; while ((linea = br.readLine())!=null) System.out.println(linea); br.close(); }catch (Exception e){ e.printStackTrace(); } int exitVal; try{ exitVal=p.waitFor(); System.out.println("Valor de Salida: " + exitVal); } catch(InterruptedException e){ e.printStackTrace(); } } }
No hay comentarios:
Publicar un comentario