Script

Iniciado por yonosoyelmejor, 2 Noviembre 2009, 12:31 PM

0 Miembros y 1 Visitante están viendo este tema.

yonosoyelmejor

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:
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.

kinos

#1
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 (java) [Seleccionar]


try{
 //abrimos un programa
 Process p = Runtime.getRuntime().exec("programa1"); //tambien le puedes poner argumentos
 //Process p = Runtime.getRuntime().exec("programa1 arg1");
 int exitCode = p.waitFor();
 System.out.println(exitCode);
 p = Runtime.getRuntime().exec("programa2");//abrimos otro
 if (exitCode != 0)
 {
  //si sale mal... aqui deberias poner algo
   //..
   p = Runtime.getRuntime().exec(cmd);
 }
 }catch (IOException e){
   e.printStackTrace();
 }catch (InterruptedException ee){
     ee.printStackTrace();

 }


yonosoyelmejor

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.

kinos

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.

yonosoyelmejor

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.