mac*_*110 4 java eclipse javafx maven javafx-11
我一直在使用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)
Run Code Online (Sandbox Code Playgroud)
这个问题似乎在这里曾经出现过,但是该线程中的任何解决方案都没有起作用。
有人对如何诊断问题有建议吗?我正在Eclipse 4.9中运行,并附加了两个项目的屏幕快照,除了一个使用maven之外,两个项目都是相同的,而另一个使用的jar添加到了构建路径。任何帮助,不胜感激。
解决此问题的方法是在注释中(kleopatra)。为了快速参考,您需要添加
-Djava.library.path=C:/anywhere-outside-eclipse
Run Code Online (Sandbox Code Playgroud)
(我使用-Djava.library.path=C:/
进行了测试)添加到VM参数。这意味着javafx 11在Eclipse中可与Maven一起使用。
这不是Eclipse唯一的问题。在Intellij IDEA 2018.3.2中运行OpenJFX应用程序时,我遇到完全相同的问题。如果Windows%Path%env变量中指定了任何其他Java版本,则将引发上述异常。
例如,我使用Java 8作为默认SDK并与Java 11一起玩。仅当我将从%Path%中删除Java 8 bin目录时,它才起作用。
这相当令人困惑(我相信这是一个错误),因为在IDE中启动项目时,我看不到与Java 8的任何关系:
C:\Software\Java\openjdk-11\bin\java.exe -Dmaven.multiModuleProjectDirectory=C:\Project\helloworld -Dmaven.home=C:\Software\Maven\3.6.0 -Dclassworlds.conf=C:\Software\Maven\3.6.0\bin\m2.conf "-javaagent:C:\Software\IntelliJ IDEA\CE_2018.3.2\lib\idea_rt.jar=64808:C:\Software\IntelliJ IDEA\CE_2018.3.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Software\Maven\3.6.0\boot\plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2018.3.2 -T 2 -DskipTests=true exec:java
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2386 次 |
最近记录: |