MacOS ARM上的JavaFX:图形设备初始化失败
我在Intellij IDE内的MacBookM1上使用JavaFX。我的应用程序在Intellij中按预期构建和运行,但当我将应用程序构建到可执行jar中并从终端运行时,我收到错误:MacOS ARM上的JavaFX:图形设备初始化失败,java,macos,intellij-idea,javafx,macos-big-sur,Java,Macos,Intellij Idea,Javafx,Macos Big Sur,我在Intellij IDE内的MacBookM1上使用JavaFX。我的应用程序在Intellij中按预期构建和运行,但当我将应用程序构建到可执行jar中并从终端运行时,我收到错误: Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitable pipeline found java.lang.RuntimeException: java.lang.Run
Graphics Device initialization failed for : es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
... 1 more
Exception in thread "main" java.lang.RuntimeException: No toolkit found
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:272)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:678)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:832)
我已经找到了有关图形驱动程序问题的可能解决方案,但应用程序在IDE中运行良好的事实让我相信这不是问题所在(也没有一个解决方案是针对M1 MacBooks的)。如果需要任何其他信息,请让我知道!提前谢谢你 试试,在MacBook Pro 2020 M1上运行。
我也有同样的问题,在安装了LibericaFX的完整版本后,问题解决了
- Liberica的完整版本包括LibericaFX,它基于OpenJFX和最小虚拟机(如适用)
- 标准版最适合不需要任何附加组件的服务器和桌面部署
- Liberica的Lite版本最适合于云部署,并针对大小进行了优化
自制
brew tap bell sw/liberica
brew安装liberica-jdk16-full
如何构建JAR文件?您用来启动JAR文件的命令是什么?文件>项目结构>工件,单击“+”,JAR>来自具有依赖项的模块。。。。我将我的主类作为与我的应用程序关联的主文件,然后单击Apply和OK。然后我进入Build>buildartifacts,选择我刚刚创建的工件并单击Build。我在终端中运行的命令是java-jar Planner.java
您使用的是JavaFX SDK(或包含JavaFX的JDK),还是使用Maven Central的JavaFX jar文件?我使用的是JavaFX SDK 11.02问题是您的fat jar文件中没有包含本机代码。您有几个选择:(1)在从命令行执行应用程序时,不要构建胖JAR,只需指向JavaFX;(2) 使用发布到Maven Central的JavaFXJAR,因为它们嵌入了本机代码;(3) 使用jlink
和jpackage
打包您的应用程序(后者是在Java14中添加的工具)。对于这个选项,您需要使用JavaFX的JMOD文件(可以从Gluon下载,与您获得SDK的位置相同)。