Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

jueves, 20 de agosto de 2015

Cómo arrancar una aplicación en Java Swing desde C#

Después de probar las respuestas en este enlace, descubrí una detalle importante:

Si no se establece la propiedad WorkingDirectory en el objeto ProcessStartInfo y se quiere arrancar un jar de Swing, éste arrancará, pero con el ícono por defecto de Java y sin imágenes.

El código mínimo para que se ejecute bien una aplicación en Swing con íconos personalizados e imágenes en los jPanels es (en mi caso, los íconos e imágenes están en una subcarpeta en el WorkingDirectory):

ProcessStartInfo psi = new ProcessStartInfo("java.exe", " -jar \"C:\\Program Files\\Installed Shiny Swing jar app\\Myjar.jar\"");
psi.WorkingDirectory = "C:\\Program Files\\Installed Shiny Swing jar app\\"; // Do not miss this line so you awesome Swing app will show default java icon and no images
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
Process p = new Process();
p.StartInfo = psi;
p.Start();


Basado en mi respuesta aquí.