Java - Lanzar aplicacion externa

 
Vista:

Lanzar aplicacion externa

Publicado por Antonio (2 intervenciones) el 19/03/2006 13:06:40
Hola, quiero implementar algo tan simple como realizar una llamada a otra aplicación independiente y que el sistema la abra con el programa por defecto.

Por ejemplo, seleccionado una opción del menu de mi programa, abra un simple html en el navegador por defecto, fuera de mi programa.

Se que es algo simple, pero no encuentro el modo de hacerlo. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Lanzar aplicacion externa

Publicado por Mario Serrano (24 intervenciones) el 19/03/2006 21:16:26
Hola..

Si estas utilizando la version del jdk 1.6 beta utilizas la clase Desktop y es realmente facil.
Pero como muchos todavia no la usan porque es beta tienes que hacer lo siguiente si tienes alguna version del jdk anterior a la 1.6:

String direccion = "http://www.google.com";
Runtime r = Runtime.getRuntime();
r.exec("rundll32 url.dll,FileProtocolHandler "+direccion);

Nota: La parte rundll32 url.dll,FileProtocolHandler "+direccion solo sirve en windows.

PD: Si quieres ejecutar otra aplicacion, mandas como parametro a r.exec la ruta de la aplicacione asi:

Runtime r = Runtime.getRuntime();
r.exec("C:/mis programas/messenger/messenger.exe");

Listo eso es todo;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Lanzar aplicacion externa

Publicado por Antonio (2 intervenciones) el 20/03/2006 00:45:10
Gracias por la respuesta Mario, me has aportado mucha luz.

Aun así hay dos detalles grandes que necesito pulir, el primero es la multiplataforma, que bueno, se puede solventar más o menos, pero el tema de la ruta dnonde se encuentran las aplicaciones, eso es algo completamente impredecible (y más hablando de distintos SO).

¿Existe algún modo de obtener la ruta donde está el programa por defecto para tal o cual archivo?

Gracias por la ayuda, me diste algo por donde empezar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Lanzar aplicacion externa

Publicado por Mario Serrano (24 intervenciones) el 20/03/2006 20:25:18
Hola de nuevo.

Lo que dices sobre la multiplataforma, en este caso, es en realidad un gran problema, porque en linux por ejemplo no se hace igual, o en macX, o HP-UX, etc. Tanto para cargar la aplicacion como para encontrar la ruta de los archivos. Por esta razon es que se esta terminando la version del JDK 1.6, que resuelve todos estos problemas.

Otra alternativa que existe y que esta totalmente implementa es SWT (de IBM), este es una api alternativa para crear ventanas al estilo de Swing, la mayor diferencia es que SWT tiene una implementancion nativa y una api multiplatarforma. Lo que permite resolver todos esos problemas que te mencione porque se integra al SO nativo y al mismo tiempo como la API es multiplataforma se integrara a cualquier SO. Pero, dependiendo del sistema necesitas el SWT para ese SO, igual que la JVM. Entonces, como de seguro estas utilizando Swing, puedes utilizar de SWT la opciones que necesitas, no la de ventanas y eso.

Una ultima alternativa, tal vez la mejor, es buscar otras API que solo se encarguen de eso.

PD: Si necesitas saber mas de SWT, busca en los articulos de javahispano.org
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar