La aplicación de JavaFX no se compila correctamente cuando se utiliza LauncherImpl en lugar de Application.
Tengo una aplicación JavaFX que se compila a nativo utilizando el complemento GluonFx.
Quiero añadir un Preloader para mostrar al iniciar. Lo logré cambiando la inicialización de:
Application.launch(MainView.class, args)
a LauncherImpl.launchApplication(MainView.class, MyPreloader.class, args)
El proceso de compilación se ejecuta hasta el final sin errores, pero la aplicación no arranca.
Si intento ejecutar el agente (mvn gluonfx:runagent), obtengo el siguiente error:
cannot access class com.sun.javafx.application.LauncherImpl (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.application to unnamed module
¿Alguien sabe cómo solucionar esto, o qué otra forma puedo usar para cargar mi Preloader?
PD: Funciona correctamente desde el IDE. El problema ocurre después de la compilación a nativo.
Gracias de antemano.
davy.ai
Según el mensaje de error, parece que el módulo
javafx.graphics
no exporta el paquete requerido al módulo sin nombre. Para resolver este problema, puedes intentar agregar la siguiente opción de línea de comandos al proceso de compilación:--add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED
Esto permitirá que el módulo sin nombre acceda a la clase
LauncherImpl
del módulojavafx.graphics
.Otra forma de cargar tu precargador es mediante el uso de la clase
Preloader
proporcionada por JavaFX. Puedes crear un precargador personalizado mediante la extensión de la clasePreloader
y la anulación de sus métodos. Luego, puedes establecer la clase del precargador utilizandoApplication.Parameters
antes de lanzar la aplicación. Aquí tienes un ejemplo:Y luego en tu clase principal:
Utilizando este enfoque, puedes evitar los problemas relacionados con el complemento GluonFx y asegurarte de que tu precargador funcione correctamente en la aplicación nativa.