Foros del Web » Programación para mayores de 30 ;) » Java »

Ejecutar una aplicacion desde código java

Estas en el tema de Ejecutar una aplicacion desde código java en el foro de Java en Foros del Web. Hola a todos, voy a exponeros una duda que llevo tiempo intentando resolver: Quiero ejecutar una aplicacion desde otra aplicacion en java. La idea es ...
  #1 (permalink)  
Antiguo 08/05/2009, 10:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 0
Ejecutar una aplicacion desde código java

Hola a todos,

voy a exponeros una duda que llevo tiempo intentando resolver:

Quiero ejecutar una aplicacion desde otra aplicacion en java.
La idea es tener un fichero con una extension, por ejemplo: lanzador.drv
De forma que ese fichero, contenga lo necesario para ejecutar una aplicacion, por ejemplo:

lanzador.drv
----------------
java -jar /home/Hola.jar


Quiero hacerlo de esta forma, ya que cada aplicacion a ejecutar, tendra su lanzador.drv donde diga cómo se tiene que ejecutar.
Y desde código java, poder ejecutar el contenido de lanzador.drv.

He intentado hacer lo siguiente:

public pruebaExec() {
Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("/home/lanzador.drv");
}
catch (IOException e) {
System.err.println(e.getMessage());
}
}


pero no funciona, ya que dice que lanzador.drv no es un archivo ejecutable.
Sabeis de qué otro modo podría resolver el problema??
Gracias de antemano.... :)
  #2 (permalink)  
Antiguo 08/05/2009, 11:33
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Ejecutar una aplicacion desde código java

Pues lo unico que se me ocurre es que ejecutes en vez del archivo, la consola, ya sea de linux o de windows y le pases como parametroo la linea del archivo
  #3 (permalink)  
Antiguo 10/05/2009, 22:29
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 8 meses
Puntos: 15
Respuesta: Ejecutar una aplicacion desde código java

Probaste en ves de crear un archivo drv, crear un archivo .bat para windows o un script de shell con extension .sh en linux.

La extension drv no le dice nada a Windows por ejemplo, en cambio si le das un .bat windows lo ejecutara.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #4 (permalink)  
Antiguo 11/05/2009, 00:33
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Respuesta: Ejecutar una aplicacion desde código java

Con Runtime.exec solo se pueden lanzar ficheros ejecutables, así que si tu fichero no lo es, tienes que lanzarlo usando un ejecutable, normalmente la consola del S.O. que uses. Así que podrias intentar lanzar "sh /home/lanzador.drv", por ejemplo.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 17/05/2009, 14:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Ejecutar una aplicacion desde código java

Muchas gracias, al final lo he solucionado de esta forma en Linux:

Runtime r = Runtime.getRuntime();
try {
Process p = r.exec("sh /home/lanzador.drv");
}
catch (IOException e) {
System.err.println(e.getMessage());
}

El problema es que para ejecutarlo en Windows, en vez de sh, no sé cómo hacer el exec... :S
No sé si se podrá ejecutar un programa sin extensión ejecutable, desconocida... Me podríais ayudar?
Muchas gracias :)
  #6 (permalink)  
Antiguo 19/05/2009, 01:00
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 73
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Ejecutar una aplicacion desde código java

Los ejecutables en Windows son .bat, puedes probar a cambiar tu "lanzador.dvr" por "lanzador.bat" y te ahorras lo de llamar a la consola.

Es decir, tu código quedaría así:
Código:
try{
  Process p = Runtime.getRuntime().exec("/directorio/lanzador.bat");
}catch(Exception e){
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:23.