当前位置: 首页 > 知识库问答 >
问题:

运行JavaFX项目时,在我的M1 MacBook上出现“图形设备初始化失败原因:es2,sw”错误

辛龙野
2023-03-14

我正在使用祖鲁openJdk 11作为Arm。我在IntelliJ和VsCode中都尝试过对接,得到了相同的错误。(我使用的是JavaFXSDK11.0.2)错误消息(来自VisualStudio代码的截图)

我真的非常感谢任何帮助,我已经尝试解决这个问题好几天了,但是找不到任何关于苹果硅的信息。

提前谢谢。

图形设备初始化失败:es2,初始化QuantumRenderer时的sw错误:找不到合适的管道java.lang.RuntimeException:java.lang.RuntimeException:初始化QuantumRenderer时的错误:在javafx.Graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)中找不到合适的管道在javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:222)在javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:260)在javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)上javafx.graphics/com.sun.javafx.application.launchempl.startToolkit(launchempl.java:658)javafx.graphics/com.sun.javafx.application.launchempl.launchApplicationWithArgs(launchempl.java:409)javafx.graphics/com.sun.javafx.application.launchempl.launchApplication(launchempl.java:363)java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.base/java.lang.reflect.invokejava.lang.RuntimeException:初始化QuantumRenderer时出错:在javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)中找不到合适的管道javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)位于java.base/java.lang.Thread.run(Thread.java:834)的java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)的线程“main”中出现异常java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.base/java.lang.reflect.Method.invoke(Method.java:566)java.base/sun.launcher.Helper$FXHelper.main(LaunchHelper.java:1051)原因:java.lang.RuntimeException:在javafx.graphics/com.sun.javafx.tk.toolkit.getToolkit(toolkit.java:272)中找不到工具箱,在javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)中找到工具箱(PlatformImpl.java:158)在javafx.graphics/com.sun.javafx.application.launchempl.startToolkit(launchempl.java:658)在javafx.graphics/com.sun.javafx.application.launchempl.launchemplicationwithargs(launchempl.java:409)在javafx.graphics/com.sun.javafx.application.launchempl.launchempl.launchempl.launchemplication(launchempl.java:36

项目代码(从oracle复制它只是为了测试mu设置):

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
 
public class JavaFX extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {
 
            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });
        
        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

共有3个答案

章高爽
2023-03-14

仅供参考:我没有使用M1,只是将系统更新为Big Sur。但你是对的,11.0.2已经过时了。对于Big Sur,11.0.2可能会显示乱码而不是普通字母,即使fx运行正常并带有“CoreText note:Client requested name”.SFNS Regular”等警告,它将使用Times Roman而不是预期字体。所有系统UI字体访问都应通过适当的API,如CTFontCreateUIFontForLanguage()或[NSFont systemFontOfSize:..”。为了解决这个问题,我将11.0.2更新为16,一切都进行得很顺利。

东郭昌胤
2023-03-14

对于M1,您必须下载支持Arm架构的JavaFX Mac OS X AARC64 SDKversion 17 build 14(当前版本)。您为什么要使用过时的11.0.2版本?

能文华
2023-03-14

我已经更新了系统,改变了以前的外汇罐,然后得到那些类似于你的警告。(大苏尔11.4)以下是解决方案:

  1. https://gluonhq.com/products/javafx/并再次下载JDK。然后按照这个指令和屁股路径https://openjfx.io/openjfx-docs/#install-javafx我正在使用eclipse,对我来说,我需要将我的运行配置的参数更改为"-module-path="/用户/XXX/Documents/javafx-sdk-11.0.2/lib"--add模块javafx.controls,javafx.fxml"之后,申请并运行。很可能你会得到“libprism_es2.dylib”无法打开,因为开发人员无法被验证。”和“libprism_sw.dylib”无法打开,因为开发人员无法被验证。”这是向前迈出的一步,因为他们正好错过了es2和sw.
  2. 然后按照这个解决方案:libprism_sw.dylib不能打开,因为开发人员无法被验证。在mac JAVAFX上,并授予他们访问权限(我花了很多时间重复授予多个库)最后,fx正在运行!
 类似资料:
  • 所以我做了一个在IDE中运行良好的小JavaFX项目。但是当导出到可运行的jar中时,双击不运行。

  • 问题内容: 我试图在IntelliJ IDEA中创建JavaFX项目,但是每次都会出错。 完成教程https://openjfx.io/openjfx-docs/#IDE- Intellij之后 ,我得到了: 将-Dprism.verbose = true添加到IntelliJ IDEA中的VM选项之后(因此,我的VM选项如下所示: 然后我得到以下输出: 我应该怎么做才能使我的项目工作? 问题答案

  • 我刚刚开始在Linux上编写/测试JavaFX代码,在启动一个简单的应用程序时,我遇到了一个错误。以前我发现很多人对此感到担忧,但我可以找到一个关于它发生的原因的明确解释。我想了解我的场景中缺少什么以使其工作。

  • 我刚刚开始在Linux上编写/测试JavaFX,在启动一个简单的应用程序时遇到了一个错误。我在福伦发现很多人对此表示担忧,但我能找到一个关于其发生原因的明确解释。我想了解我的场景中缺少了什么,以使其正常工作。 任何建议都将受到重视。

  • 大家下午好。 当我试图将Java代码作为可运行的Jar文件运行时,我遇到了一个问题。我正在使用Eclipse,我创建了一个普通的Java项目。我将javafxjars作为用户库包括在内。当我用IDE启动程序时,程序运行没有问题。为了创建Jar文件,我在可运行Jar文件中使用Java项目的内置导出。当我选中“将所需库提取到生成的JAR中”并运行它时,我得到以下错误消息: 当我选中“将所需库打包到生成

  • 此外,我使用tomcat7-maven-plugin运行tomcat。 这是密码。 web.xml