首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaFX非模块化项目图形设备初始化失败,原因是: d3d,sw初始化QuantumRenderer时出错:找不到合适的管道

JavaFX非模块化项目图形设备初始化失败,原因是: d3d,sw初始化QuantumRenderer时出错:找不到合适的管道
EN

Stack Overflow用户
提问于 2021-02-20 23:04:30
回答 1查看 401关注 0票数 2

我正在尝试让JavaFX在Windows10上使用一个非模块化的项目。我有Java14.0.1版和JavaFX 15.0.1版。我完全按照here列出的说明操作,但当我运行该程序时,它给出了这个错误:

代码语言:javascript
运行
复制
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:280)
    at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:244)
    at javafx.graphics/com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:261)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    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:564)
    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:94)
    at javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
    at java.base/java.lang.Thread.run(Thread.java:832)
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:564)
    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:273)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:267)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    ... 5 more

我也看过这些问题(123),我照他们说的做了,但当我运行它时,我仍然得到一个错误。我从official download website下载了JavaFX sdk文件,我的VM选项是:

代码语言:javascript
运行
复制
--module-path "C:\Program Files\Java\javafx-sdk-15.0.1\lib" --add-modules=javafx.controls,javafx.fxml 

我尝试将模块路径更改为不同位置的路径,以及没有空格的路径,但都无济于事。我也尝试过使用Eclipse、Netbeans和no IDE (所有设置指令都来自the official website),但它们都不起作用。我正在尝试运行的程序只是一个测试程序。

代码语言:javascript
运行
复制
package sample;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            // create a new Text shape
            Text messageText = new Text("Hello World! Lets learn JavaFX.");

            // stack page
            StackPane root = new StackPane();

            // add Text shape to Stack Pane
            root.getChildren().add(messageText);

            Scene scene = new Scene(root,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

编辑:对答案的响应

很抱歉回复晚了,我试着把你说的放在虚拟机选项中,我想这就是你的意思,但我得到了一个错误

代码语言:javascript
运行
复制
Error: Could not find or load main class run.jvmargs=--module-path
Caused by: java.lang.ClassNotFoundException: run.jvmargs=--module-path.

我也试过在没有run.jvmargs=的情况下运行它,但它也不起作用。我得到了下面的错误。

代码语言:javascript
运行
复制
Error: Could not find or load main class \
Caused by: java.lang.ClassNotFoundException: \

顺便说一下,我拥有的特定VM选项如下所示。

代码语言:javascript
运行
复制
run.jvmargs=--module-path "C:\\Program Files\\Java\\javafx-sdk-15.0.1\\lib" \
    --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \
    --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED \
    --add-exports=javafx.web/com.sun.webkit.network=ALL-UNNAMED \
    --add-exports=javafx.web/com.sun.webkit.dom=ALL-UNNAMED \
    --add-exports=javafx.graphics/com.sun.scenario.animation.shared=ALL-UNNAMED \
    --add-exports=javafx.graphics/com.sun.javafx.tk.quantum=ALL-UNNAMED

编辑- 2:

EN

Stack Overflow用户

发布于 2021-02-22 15:58:33

我的项目也使用此run.jvmargs属性。HTere的

代码语言:javascript
运行
复制
run.jvmargs=--module-path "D:\\Libraries\\Java9\\openjfx-13.0.2_windows-x64_bin-sdk\\javafx-sdk-13.0.2\\lib" \
    --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \
    --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED \
    --add-exports=javafx.web/com.sun.webkit.network=ALL-UNNAMED \
    --add-exports=javafx.web/com.sun.webkit.dom=ALL-UNNAMED \
    --add-exports=javafx.graphics/com.sun.scenario.animation.shared=ALL-UNNAMED \
    --add-exports=javafx.graphics/com.sun.javafx.tk.quantum=ALL-UNNAMED // <<-- notice this thing

此外,请确保使用\而不是\

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66293045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档