Meus usos aplicativo JavaFX 11.0.1 e é enviado junto com uma versão jlinked de openjdk 11. Ele funciona muito bem para a grande maioria dos usuários, mas alguns deles estão recebendo esta pilha:
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)
Eu encontrei alguma discussão relacionada com a mesma exceção, mas sobre Maven + Eclipse, aqui e aqui . A questão é muito semelhante, relatando user-lo, não tem outras instalações java e desinstalar-los resolve o problema, então, basicamente deixando meu openjdk empacotado como a única opção o aplicativo for iniciado, mas se houver outro Java instalado no sistema, o errado. dll é levantado e a aplicação falha com o stacktrace acima.
Eu tentei o sugerido java.library.path
solução alternativa, mas os usuários estão dizendo que não resolve. Infelizmente, não posso reproduzi-lo eu mesmo, qualquer ideia sobre como resolvê-lo ou o que pedir aos usuários relatando isso?
EDIT : corrigimos o exe gerado pelo lauch4j aqui eo script bash aqui . A idéia é, basicamente, para restringir / mudar a PATH
variável env para evitar a dll errada ser pego.