在类(class)期间,我在计算机上安装了 JDK,以便能够运行 eXist 数据库。之后,执行命令 java -jar fileName.jar
后出现以下错误。
Graphics Device initialization failed for : d3d, 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:835) 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:835)
Windows 10
java -version
openjdk version "12.0.2" 2019-07-16 OpenJDK Runtime Environment Adopt
OpenJDK (build 12.0.2+10) OpenJDK 64-Bit Server VM Adopt
OpenJDK (build 12.0.2+10, mixed mode, sharing)
最佳答案
从您的日志中可以清楚地看出您正在使用 JDK-12,并且您的 jar 似乎是使用 JDK-8 开发的,其中该版本的 JDK 包含 JavaFx 库。
但是 Oracle 正在从 JDK-11 中删除 JavaFX,因此它不再出现在 JDK-11+ 中,相反,您有两种解决方案:
- 使用包含此 JavaFx 的 JDK-8,
- 或者在您的项目中包含 JavaFx 包或依赖项 check the link
关于java - 安装JDK后,无法运行.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57856943/