Mis usos de aplicaciones JavaFX 11.0.1 y se envía empaquetado con una versión de OpenJDK jlinked 11. Funciona muy bien para la gran mayoría de los usuarios, pero pocos de ellos están recibiendo esta pila:
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
at com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at com.sun.glass.ui.Screen.initScreens(Screen.java:412)
at com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(QuantumToolkit.java:695)
at com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:313)
at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:258)
at com.sun.glass.ui.Application.lambda$run$1(Application.java:153)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Unknown Source)
He encontrado alguna discusión relacionada con la misma excepción, sino en relación con Maven + Eclipse, aquí y aquí . La cuestión es muy similar, el usuario de informes que, sí tienen otras instalaciones de Java y desinstalación de ellos resuelve el problema, por lo que, básicamente, dejando a mi OpenJDK integrado como la única opción se inicia la aplicación, pero si hay instalado otro Java en el sistema, el mal. DLL es recogido y la aplicación se bloquea con la StackTrace anteriormente.
Probé el sugerido java.library.path
solución, pero dicen los usuarios no resuelve. Lamentablemente no puedo reproducirlo a mí mismo, alguna idea sobre cómo resolver o qué preguntar a los usuarios de informes que?
EDITAR : hemos fijado el exe generado por lauch4j aquí y la escritura del golpe aquí . La idea es, básicamente, para restringir / cambiar la PATH
variable de entorno para evitar la DLL mal ser recogido.