我一直在使用 Maven 测试 JavaFX 11,但无法使其正常工作。我已经安装了 Open JDK 11,如果添加 jar 以从可下载的 .zip 构建路径,一切正常。
然而,当我使用来自 javafx 11 的推荐 POM 文件时网站我收到以下错误。
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Screen.java:412)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(D3DPipeline.java:205)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(QuantumToolkit.java:695)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:313)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:258)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:153)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
这个问题好像出现过一次here但该线程中的所有解决方案均无效。
有人对如何诊断问题有建议吗?我在 Eclipse 4.9 中运行并附上了两个项目的屏幕截图,除了一个使用 maven 和另一个将 jars 添加到构建路径之外,它们是相同的。非常感谢任何帮助。
最佳答案
这个问题的解决方案在评论中(kleopatra)。为了快速引用,您需要添加
-Djava.library.path=C:/anywhere-outside-eclipse
(我使用 -Djava.library.path=C:/
测试)到 VM 参数。这意味着 javafx 11 在 eclipse 中与 Maven 一起工作。
关于使用 Maven 的 JavaFX 11 抛出异常 : "WindowsNativeRunloopThread",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52906570/