You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装JDK后无法运行.jar文件,报QuantumRenderer初始化错误

解决「Error initializing QuantumRenderer: no suitable pipeline found」问题

问题背景

你在Windows 10系统上使用AdoptOpenJDK 12.0.2运行eXist数据库的jar包时,执行java -jar fileName.jar命令出现了JavaFX渲染初始化失败的错误,完整错误信息如下:

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)

你的Java版本信息:

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)

解决方案

这个错误本质是JavaFX无法找到合适的图形渲染管道,结合你的环境,推荐按以下顺序尝试:

1. 强制使用软件渲染模式

这是最快的临时解决方法,绕过硬件加速的问题。在运行jar包时添加-Dprism.order=sw参数:

java -Dprism.order=sw -jar fileName.jar

如果经常需要运行,可以设置系统环境变量_JAVA_OPTIONS为-Dprism.order=sw,这样所有Java程序都会默认使用软件渲染。

2. 确保JavaFX组件完整

AdoptOpenJDK 12及以上版本默认不包含JavaFX(JavaFX从JDK 11开始成为独立模块),而eXist的jar包可能依赖JavaFX。你需要:

  • 下载对应版本的JavaFX SDK(和你的JDK版本匹配,比如12.0.2)
  • 运行jar包时指定JavaFX的模块路径和需要的模块:
java --module-path "path/to/javafx-sdk-12.0.2/lib" --add-modules javafx.controls,javafx.graphics -jar fileName.jar

替换path/to/javafx-sdk-12.0.2/lib为你实际的JavaFX lib目录路径。

3. 更新显卡驱动

错误中提到d3d(Direct3D)初始化失败,可能是显卡驱动过时导致的。打开Windows设备管理器,找到显示适配器,右键更新驱动程序,选择自动搜索更新的驱动软件,完成更新后重启电脑再尝试运行。

4. 切换到JDK 8

很多旧版本的Java应用(比如eXist的早期版本)对JDK 11+的兼容性不佳,而JDK 8默认包含JavaFX,且图形渲染管道更稳定。你可以:

  • 下载AdoptOpenJDK 8版本
  • 切换系统的JAVA_HOME环境变量指向JDK 8的安装目录
  • 重新执行java -jar fileName.jar命令

内容的提问来源于stack exchange,提问作者oleksii.sapov-erlinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:30:19