java - 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)。如果需要任何其他信息,请告诉我!先感谢您!
解决方案
试用Liberica OpenJDK,适用于 MacBook Pro 2020 M1。我遇到了同样的问题,在安装了 LibericaFX 的完整版后,问题解决了。
- Liberica 的完整版包括 LibericaFX,它基于 OpenJFX 和 Minimal VM,如果合适的话。
- 标准版最适合不需要任何附加组件的服务器和桌面部署。
- Liberica 的精简版最适合云部署,并且针对大小进行了优化。
也可在HomeBrew
brew tap bell-sw/liberica
brew install liberica-jdk16-full
推荐阅读
- api - 亚马逊 API 与 wordpress 网站的连接问题
- javascript - 通过 JavaScript 修改 Json 数据以创建新对象
- azure - 连接 Azure CDN 规则变量
- excel - 提交登录表单只是刷新页面
- python - python - 交叉验证后如何使用“测试”数据集?
- python-3.x - 迭代字典列表时合并字典项目的问题
- python - 在python中找到最终的回归方程
- ios - 为什么这是“未知类型名称'MoodPrefetchOp';你的意思是'PrefetchOp'吗?” 显示?文件 h 和 m 都存在
- excel - 如何在 Excel 中将日期时间格式转换为 24 小时日期时间格式
- android - 旋转设备后不出现对话框片段