Foro de elhacker.net

Programación => Java => Mensaje iniciado por: yonosoyelmejor en 2 Noviembre 2009, 12:31 pm



Título: Script
Publicado por: yonosoyelmejor en 2 Noviembre 2009, 12:31 pm
Hola,tengo una duda y bueno queria exponerosla a ver si podrias ayudarme.Tengo un script de R,por si alguien no lo conoce es un paquete estadistico,es decir tengo un ejemplo.R,necesito saber como puedo instanciar ese script desde Java para poder asociarselo a un boton de mi entorno grafico.He estado mirando y he conseguido lanzar la consola pero me haria falta que enviase un comando.El codigo que utilizo yo es:
Código:
Process p = Runtime.getRuntime().exec ("C:/Archivos de programa/R/R-2.9.2/bin/Rgui.exe"); 

Espero haberme explicado medianamente bien.

Gracias por la atencion y espero vuestras sugerencias.

Saludos.


Título: Re: Script
Publicado por: kinos en 2 Noviembre 2009, 22:26 pm
A ver si te sirve esto, ten en cuenta la rutas también para que no te hagas un lio. Para ejecutar un script supongo que será igual, en vez de programa1 pones el nombre del script no?

Código
  1.  
  2. try{
  3.  //abrimos un programa
  4.  Process p = Runtime.getRuntime().exec("programa1"); //tambien le puedes poner argumentos
  5.  //Process p = Runtime.getRuntime().exec("programa1 arg1");
  6.  int exitCode = p.waitFor();
  7.  System.out.println(exitCode);
  8.  p = Runtime.getRuntime().exec("programa2");//abrimos otro
  9.  if (exitCode != 0)
  10.  {
  11.   //si sale mal... aqui deberias poner algo
  12.    //..
  13.    p = Runtime.getRuntime().exec(cmd);
  14.  }
  15.  }catch (IOException e){
  16.    e.printStackTrace();
  17.  }catch (InterruptedException ee){
  18.      ee.printStackTrace();
  19.  
  20.  }
  21.  
  22.  


Título: Re: Script
Publicado por: yonosoyelmejor en 3 Noviembre 2009, 12:56 pm
Pero con este codigo abro dos programas no??En este caso me haria falta.Abrir la consola de un programa(en mi caso R) y poder pasarle el comando source("C://...") y ya este comando es el que llama a mi script,es decir yo llamo a la consola R le paso el comando y el lo carga.Espero haberme explicado medianamente.Lo mismo es mas sencillo pero es que no se me ocurre otra forma...Estoy ya tirandome de los pelos xDD

Un saludo y gracias.


Título: Re: Script
Publicado por: kinos en 3 Noviembre 2009, 17:04 pm
Si, abre dos programas distintos, lo he puesto por poner un ejemplo.
Prueba ha escribir:

Process p = Runtime.getRuntime().exec("cmd /c nombreScriptOComando");

No tengo ni idea de que ocurrirá pero para probar y evitar problemas de rutas deja el script en c:/ por si te da problemas con los espacios de la ruta. Luego tu verás si te funciona con la ruta.

Mira si haces esto te sale la consola y una pausa (cuando termine se cerrará):

Process p = Runtime.getRuntime().exec("cmd /c pause");
//no he probado el comando entero, solo he probado "inicio" -> "ejecutar" -> cmd /c pause

Suerte.


Título: Re: Script
Publicado por: yonosoyelmejor en 4 Noviembre 2009, 10:08 am
El problema reside en que necesito abrir primero la consola del programa,ya que el R lleva una consola asociada y despues enviar ese comando a esa consola...por eso no puedo utilizar la de windows.No obstante gracias por interesarte.

Saludos.