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

Linux上的JavaFX正在显示"Graphics Device初始化失败:es2, sw"

谭富
2023-03-14

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

任何建议都将受到重视。

java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b123)
Java HotSpot(TM) Client VM (build 25.0-b65, mixed mode)

Linux MYServer 2.6.21-1.3228.fc7 #1 SMP Tue Jun 12 15:37:31 EDT 2007 i686 i686 i386 GNU/Linux
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:300)
        at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
        at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:179)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:210)
        at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:98)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:128)
        at java.lang.Thread.run(Thread.java:744)
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: No toolkit found
        at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:191)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:210)
        at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:653)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:314)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)

共有3个答案

仇建茗
2023-03-14

我通过向系统中添加libswt-gtk-3-java和gkt3解决了这个问题。

谢志文
2023-03-14

您需要安装OpenJFX:

apt-get install openjfx

然后运行程序。

柳高卓
2023-03-14

您应该看看这个相关的bug,以获得如何解决问题的帮助。总之,建议如下:

  • 使用-Dprism运行应用程序。verbose=trueflag
  • 检查生成的详细日志
  • 它可能指向缺少的图形库:在linux上运行JavaFX需要GTK 2.18
 类似资料:
  • 我刚刚开始在Linux上编写/测试JavaFX代码,在启动一个简单的应用程序时,我遇到了一个错误。以前我发现很多人对此感到担忧,但我可以找到一个关于它发生的原因的明确解释。我想了解我的场景中缺少什么以使其工作。

  • 所以我做了一个在IDE中运行良好的小JavaFX项目。但是当导出到可运行的jar中时,双击不运行。

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

  • 我正在使用祖鲁openJdk 11作为Arm。我在IntelliJ和VsCode中都尝试过对接,得到了相同的错误。(我使用的是JavaFXSDK11.0.2)错误消息(来自VisualStudio代码的截图) 我真的非常感谢任何帮助,我已经尝试解决这个问题好几天了,但是找不到任何关于苹果硅的信息。 提前谢谢。 图形设备初始化失败:es2,初始化QuantumRenderer时的sw错误:找不到合适

  • 我在我的android应用程序中使用谷歌地图。我已经创建了密钥并在清单文件中添加了必要的权限。但很快我启动了应用程序,我在调试器中收到了这条消息: Google服务初始化失败,状态:10,缺少用于初始化Google服务的预期资源:“R.string.google_app_id”。可能的原因是缺少google-services.json或com.google.gms.google服务gradle插件