• Domingo 22 de Diciembre de 2024, 15:09

Autor Tema:  Ejecutar un Jar desde un aplicación  (Leído 19341 veces)

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Ejecutar un Jar desde un aplicación
« en: Lunes 29 de Septiembre de 2008, 15:55 »
0
Hola...Q tal...

Ya había hecho una pregunta similar, y me había funcionado pero ahora tengo otra duda, espero puedan ayudarme.

El punto es q tengo una aplicación en NetBeans, que debe ejecutar otra aplicación tambien en NetBeans.
Esto lo estoy haciendo con el getRuntime() pero no hace nada. Me pareciera q es un problema de cómo estoy pasando la ruta en el exec.

Suponiendo que el jar esta en el siguiente directorio : C:/Desarrollos/Ejecutar/Ejecutar.jar
Tengo lo siguiente:

Runtime obj = Runtime.getRuntime();
Process proc = obj.exec(java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar);

Pero no ejecuta nada y tampoco retorna alguna excepcion que pueda capturar (de hecho no se como capturar en mi aplicacion una excepcion generada en la segunda aplicacion)

Espero que me haya explicado, de antemano gracias por su colaboracion

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejecutar un Jar desde un aplicación
« Respuesta #1 en: Lunes 29 de Septiembre de 2008, 16:13 »
0
Prueba a ejecutar esto:

cmd.exe /c java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #2 en: Lunes 29 de Septiembre de 2008, 16:35 »
0
Gracias por responder, pero sigue sin funcionar :s

Se me olvido comentar que esa segunda aplicación utiliza ciertos parámetros que lee de un archivo de texto, el cual tengo en el mismo directorio del Jar, resulta que cuando pruebo esta aplicación directamente desde la linea de comando (java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar) me arroja un error de que no consigue el archivo de texto... Puede ser q esta sea la causa de q no lo ejecute desde la primera aplicación utilizando el getRuntime() ????

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejecutar un Jar desde un aplicación
« Respuesta #3 en: Lunes 29 de Septiembre de 2008, 16:42 »
0
Yo creo que sí. Adjúntale los argumentos y vemos. También puedes probar con

cmd.exe /k java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar

a ver si ves el mensaje de error.

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #4 en: Lunes 29 de Septiembre de 2008, 17:02 »
0
Nada... Coloque el archivo txt en C, porq probando directamente desde la linea de comandos funciona asi...pero ejecutandolo desde la aplicación no funciona :S

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejecutar un Jar desde un aplicación
« Respuesta #5 en: Lunes 29 de Septiembre de 2008, 17:12 »
0
Cita de: "MercedesH"
porq probando directamente desde la linea de comandos funciona asi...pero ejecutandolo desde la aplicación no funciona

No entiendo muy bien...

¿Has probado con cmd /k y añadiendo el argumento también? P.ej:

cmd.exe /k java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar TUFICHERO.TXT

¿Has probado a ejecutar otra cosa para ver si realmente funciona? P.ej:

Process proc = obj.exec(C:/WINDOWS/NOTEPAD.EXE);

Otra cosilla: la ruta de obj.exec() ¿no debería ir entrecomillada o algo?

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #6 en: Lunes 29 de Septiembre de 2008, 17:38 »
0
ok..Te explico:

Yo probe esto desde la interfaz de comandos: C:> java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar, colocando el archivo txt en C y funciona. Pero desde la aplicación, es decir con el getRuntime() no funciona. Y lo estoy colocando entre comillas.

Ahora desde ejecutar, colocando cmd /k o cmd /c  java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar, no funciona.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejecutar un Jar desde un aplicación
« Respuesta #7 en: Lunes 29 de Septiembre de 2008, 17:47 »
0
Cita de: "MercedesH"
colocando el archivo txt en C

Supongo que te refieres a colocarlo en la raíz del disco C:

¿Podrías postear la parte del código Java que tenga que ver con el fichero de texto?

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #8 en: Lunes 29 de Septiembre de 2008, 17:52 »
0
Si lo copie en C..

OK, el archivo tiene ciertos datos de configuración que leo en el programa. Una parte de estas es la siguiente:

ip = ManejoArchivos.LeerArchivo("configuracion.txt", 2);

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejecutar un Jar desde un aplicación
« Respuesta #9 en: Lunes 29 de Septiembre de 2008, 17:58 »
0
Ponle "C:configuracion.txt" y vuelve a probar. Así vemos si el problema reside en que no encuentra el fichero o en otra parte...

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #10 en: Lunes 29 de Septiembre de 2008, 18:15 »
0
Asi si funciona... Cómo puedo colocarlo para q lo lea del mismo directorio donde este el Jar?

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: Ejecutar un Jar desde un aplicación
« Respuesta #11 en: Lunes 29 de Septiembre de 2008, 21:30 »
0
Por lo que veo, tienes un problema de "enrutamiento", por así decirlo...

Cuando ejecutas java -jar C:DesarrollosEjecutarEjecutar.jar, va a buscar el archivo configuracion.txt desde el directorio donde se encuentre actualmente; o sea, si se ejecuta desde C:temp, el programa intenta acceder el archivo configuracion.txt en la carpeta C:temp. Intenta obteniendo la ruta absoluta del ejecutable dinámicamente (ni idea de cómo hacerlo :blink: , consulta en la documentación de Java), y esa ruta se la pones al llamado del txt.

:suerte:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejecutar un Jar desde un aplicación
« Respuesta #12 en: Martes 30 de Septiembre de 2008, 09:55 »
0
Mi opción preferida sería pasarle la ruta del fichero de texto al JAR como argumento (algo que nunca he probado). Mira a ver si te funciona esto:

Código: Java
  1.  
  2. public class Echo {
  3.     public static void main (String[] args) {
  4.         for (String s: args) {
  5.             System.out.println(s);
  6.         }
  7.     }
  8. }
  9.  
  10.  

Y lo guardas como Echo.jar. Si ejecutas java -jar Echo.jar "Hola" "Halo" "Hilo" debería aparecer como salida:

Código: Text
  1.  
  2. Hola
  3. Halo
  4. Hilo
  5.  
  6.  

Así podrías pasarle la ruta del fichero de texto como argumento, esto es, java -jar C:/Desarrollos/Ejecutar/Ejecutar.jar "C:configuracion.txt"

Y en tu código (no olvides declarar args[] como parámetro en main)

Código: Java
  1.  
  2. public static void main (String[] args) {
  3. [...]
  4. ip = ManejoArchivos.LeerArchivo(args[0], 2);
  5.  
  6.  

Cita de: "shadow_rev"
Intenta obteniendo la ruta absoluta del ejecutable dinámicamente

Application.ExecutablePath, pero no creo que funcione puesto que no hay ejecutable, sólo byte-code Java. Puedes probar esto también, a lo mejor funciona (teniendo el "configuracion.txt" en el mismo directorio que el JAR):

Código: Java
  1.  
  2. ip = ManejoArchivos.LeerArchivo(Application.ExecutablePath + "configuracion.txt", 2);
  3.  
  4.  

Espero haberme explicado, un saludo.

MercedesH

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #13 en: Jueves 2 de Octubre de 2008, 02:00 »
0
ok, gracias por responder... lo probaré...

Canabix

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Ejecutar un Jar desde un aplicación
« Respuesta #14 en: Miércoles 14 de Abril de 2010, 18:13 »
0
Prueba con este codigo, intenta con javaw
Código: Java
  1. try
  2.                 {
  3.                         Runtime r = Runtime.getRuntime();
  4.                         //Abrir Archivo JAR
  5.                         Process p=r.exec("JAVAW.EXE -jar Ejemplo1.jar");
  6.                 }
  7.                 catch(Exception ex)
  8.                 {
  9.  
  10.                         System.out.println(ex.toString());
  11.                 }
  12.