我正在使用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)
你能告诉我这个消息的原因是什么。
答案 0 :(得分:0)
目前,我可以提供 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 来列出被阻止的包。
安装那些旧但很好的软件包为我解决了所有问题。我希望他们也能帮助你。