【发布时间】:2019-03-25 04:25:15
【问题描述】:
我一直在使用 Maven 测试 JavaFX 11,但无法让它工作。我安装了 Open JDK 11,如果从可下载的 .zip 添加 jar 来构建路径,一切正常。
但是,当我使用来自 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 之外,它们是相同的。非常感谢任何帮助。
【问题讨论】:
-
如果您对两个项目使用相同的运行时会怎样?第一个项目使用名为 JavaSE-11 的运行时,第二个项目使用名为 jdk-11.0.1 的运行时。我建议在第一个项目中也使用有效的(第二个)
-
谢谢,但它们实际上是同一个运行时,只是有两个不同的名称(无论如何都更改了它,但仍然不起作用)
-
您说您有一个 Maven 项目,但项目结构并未反映这一点(即您的源代码没有
/src/main/java)。你还添加了一个module-info类,你可能不需要? -
是的,是的。这很草率。我已经创建了正确的项目结构并更新了图片。我还从 javafx11test 中删除了一些多余的 jar 文件,以便两个项目应该完全相同。如果没有模块信息类,我无法在 Eclipse 中运行项目。
标签: java eclipse maven javafx javafx-11