【问题标题】:Graphics Device initialization failed for : es2, sw图形设备初始化失败:es2,sw
【发布时间】:2017-04-03 13:26:07
【问题描述】:

我正在使用 Java 的下一个版本:

 openjdk version "1.8.0_111"
 OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2ubuntu0.16.04.2-b14)
 OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)

我的系统是 ubuntu 16.04 Lts,我尝试执行一个 shell 脚本文件,使用终端,我得到下一条错误消息

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:227)
at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:173)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
 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:185)
at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)

你能告诉我这条消息的原因是什么。

【问题讨论】:

  • 有人知道解决办法吗?
  • 更多信息会有所帮助,尤其是您使用的 GPU 以及您为它安装的驱动程序。
  • stackoverflow.com/questions/21185156/…也有相关的帖子,你查过吗?
  • 是的,我检查了该链接并尝试了所有建议的解决方案,但错误仍然出现。请问您对此有其他解决方案吗?
  • 您仍然需要添加更多详细信息,正如我上面所问的:驱动程序(版本)、什么 GPU 等。您是否尝试过使用 Oracle JRE 运行它?

标签: java ubuntu javafx graphics


【解决方案1】:

目前,我可以提供 Ubuntu 18.x 的确切说明。他们也可以在其他基于 Debian 的系统上工作。如果您使用的是其他操作系统,也许下面列出的软件包名称会引导您走向正确的方向。

首先,您需要了解您的发行版中可用的 OpenJFX 版本。从命令行运行:

$ apt-cache policy openjfx

在版本表部分,您可能会看到两个选项。我目前看到 11.0.2+1-1~18.04.2 和 8u161-b12-1ubuntu2 。以 11 开头的版本是默认版本,即使您(可能)安装了 openjdk-8-jdk。您需要以数字 8 开头的版本。在撰写本文时,它是 8u161-b12-1ubuntu2。

要安装 OpenJFX 和相关软件包(假设您正在从事开发工作),首先确保您已卸载任何基于 Java 11 的软件包,因为它们将(不)愉快地与 JDK 8 共存,并导致您很多问题。

$ sudo apt remove openjfx openjfx-source libopenjfx-java libopenjfx-jni

接下来,安装正确的版本(将您在策略查询中看到的任何版本替换为 8u161-b12-1ubuntu2):

$ sudo apt install openjfx=8u161-b12-1ubuntu2 openjfx-source=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2

更新:第二天我注意到 sudo apt upgrade(或自动系统更新)会“升级”我精心选择版本的 jfx 包。以下是防止这种情况发生的方法:

$ sudo apt-mark hold openjfx openjfx-source libopenjfx-java libopenjfx-jni
 openjfx set on hold.  
 openjfx-source set on hold.
 libopenjfx-java set on hold.
 libopenjfx-jni set on hold.

您可以随时运行 sudo apt showhold 来列出被阻止的软件包。

安装这些旧但很好的软件包为我解决了所有问题。我希望他们也能帮助你。

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2021-04-09
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多