初始化QuantumRenderer时出错:在Eclipse JavaFX中找不到合适的管道



显示"初始化QuantumRenderer时出错:找不到合适的管道";在运行JavaFX应用程序之后。我在项目中添加了所需的JavaFXjar文件,我不知道为什么会出现这个错误。

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 javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:254)
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:264)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:291)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:163)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:659)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:410)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.base/java.lang.Thread.run(Thread.java:829)
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: No toolkit found
at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:276)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:291)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:163)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:659)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:410)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
... 5 more

如果另一个答案不起作用,则可能是您下载了错误的JavaFX文件,请确保该文件适用于正确的系统以及x64或x86体系结构,具体取决于您的计算机(请检查程序文件中的匹配文件(,因为如果安装了错误的文件,则该文件将不起作用。如果你下载了错误的文件,你需要将你制作的库中的文件以及VM参数中的文件位置替换为正确的文件。

希望这能有所帮助,我花了大约一个小时的时间才意识到我下载的是x86而不是x64文件。

在Eclipse IDE中,像往常一样创建一个java项目,并在Windows中创建一个新库>首选项和Java>生成路径>用户库单击"新建"。。。命名库并添加.jar。点击AddExternalJAR。。。转到解压javafx包的路径,在lib下选择所有.jar。单击Open和Apply and Close。您可以开始导入javafx代码。如果运行该应用程序,将出现错误"错误:JavaFX运行时组件丢失,需要运行此应用程序";若要解决此问题,请转到"运行">运行配置。在Java应用程序下创建新配置在Arguments选项卡的右侧,查找VM Arguments并添加

--模块路径";TO_YOUR_JAVAFX_LIB_FOLDER"--添加模块javafx.controls、javafx.fxml

其中PATH_TO_YOUR_JAVAFX_LIB_FOLDER在我的情况下将是";C: \Program Files\Java\jdk-11.0.14\openjfx-18.0.1\windows-x64_bin-sdk\javafx-sdk-18.0.1\lib"。应用更改并运行第一个问题修复

现在,如果您尝试导出您的项目,IDE将向您显示一条警告,指出VM参数将不属于可运行JAR的一部分,并且如果您执行JAR,您将面临相同的错误:";错误:JavaFX运行时组件丢失,需要运行此应用程序";我总是检查";将所需的库复制到jar"旁边的子文件夹中;在导出向导中。要修复此错误,请在导出的.jar旁边创建一个新的文本文件,并使用.bat扩展名命名(在windows中(编辑.bat文件并添加:

java——模块路径";TO_YOUR_JAVAFX_LIB_FOLDER"--添加模块javafx.controls、javafx.fxml-jar YOUR_PROJECT_NAME.jar

全部完成,但是PATH_TO_YOUR_JAVAFX_LIB_FOLDER在您的机器中,那么如果您在另一台机器中运行.jar呢?

java——模块路径";YOUR_PROJECT_NAME_lib/"--添加模块javafx.controls、javafx.fxml-jar YOUR_PROJECT_NAME.jar

其中YOUR_PROJECT_NAME_lib与导出的.jar 位于同一目录中

如果现在运行,您会得到错误

"图形设备初始化失败:d3d,sw初始化QuantumRenderer时出错:找不到合适的管道。。。">

发生此错误是因为它找不到本机(.dll(,所以,复制PATH_TO_YOUR_JAVAFX下的文件夹bin,将其粘贴到导出的.jar文件的同一文件夹中

这应该奏效。希望这对你有所帮助。

最新更新