首页 > 解决方案 > MacOS ARM 上的 JavaFX:图形设备初始化失败

问题描述

我在 Intellij IDE 内的 MacBook M1 上使用 JavaFX。我的应用程序在 Intellij 中按预期构建和运行,但是当我将应用程序构建到可执行 jar 并从终端运行它时,我收到错误:

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 MacBook)。如果需要任何其他信息,请告诉我!先感谢您!

标签: javamacosintellij-ideajavafxmacos-big-sur

解决方案


试用Liberica OpenJDK,适用于 MacBook Pro 2020 M1。我遇到了同样的问题,在安装了 LibericaFX 的完整版后,问题解决了。

  • Liberica 的完整版包括 LibericaFX,它基于 OpenJFX 和 Minimal VM,如果合适的话。
  • 标准版最适合不需要任何附加组件的服务器和桌面部署。
  • Liberica 的精简版最适合云部署,并且针对大小进行了优化。

也可在HomeBrew

brew tap bell-sw/liberica
brew install liberica-jdk16-full

推荐阅读