使用 Maven 的 JavaFX 11 抛出异常 : "WindowsNativeRunloopThread"

标签 java eclipse maven javafx javafx-11

我一直在使用Maven测试JavaFX 11,但无法让它工作。我安装了 Open JDK 11,如果添加 jars 以从可下载的 .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,另一个将 jar 添加到构建路径中。非常感谢任何帮助。 Two projects. javafx11mvn is a Maven project loading javafx11 dependencies from the POM file, java11test2 is a standard java project with javafx11 jars dded to build path]

最佳答案

这个问题的解决方案在评论中(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/59933116/

相关文章:

java - Log4j 未使用属性文件找到自定义附加程序

java - 直接从 Maven 存储库执行 JAR 文件

maven - mvn清理tomcat :run command

java - 无法使用 java Udp 获得响应

java - Android Studio错误:任务执行失败:app:transformClassesWithDexForDebug

java - 我可以配置 Eclipse 以抑制特定字段名的 "is not used"警告吗?

spring - log4j:WARN 找不到记录器的附加程序 (org.springframework.core.env.StandardEnvironment)

java - 为什么 `Throwable.detailMessage` 不是最终的?

java - 使用 servlet 过滤器修改请求参数

c - 使用 Eclipse 在 C 中使用 malloc() 和其他函数