无法在 Windows 上使用 JavaFX 11 运行 Maven 着色 jar

格纳斯

起初我得到了缺少 JavaFX 运行时组件的错误,这导致我进入了这个线程在该线程中应用解决方案后,即创建一个不扩展应用程序的不同 Main 类,我收到一条新的错误消息,下面是 -Dprism.verbose=true 的完整堆栈跟踪:

Prism pipeline init order: d3d sw
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d.D3DPipeline
GraphicsPipeline.createPipeline failed for com.sun.prism.d3d.D3DPipeline
java.lang.ClassNotFoundException: com.sun.prism.d3d.D3DPipeline
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
        at java.base/java.lang.Thread.run(Thread.java:834)
*** Fallback to Prism SW pipeline
Prism pipeline name = com.sun.prism.sw.SWPipeline
GraphicsPipeline.createPipeline failed for com.sun.prism.sw.SWPipeline
java.lang.ClassNotFoundException: com.sun.prism.sw.SWPipeline
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
        at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
        at java.base/java.lang.Thread.run(Thread.java:834)
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:834)
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:834)

我尝试了不同的 JDK 11 版本,但它们都提供了相同的错误消息

格纳斯

我设法解决了我的问题。原因是我有

<minimizeJar>true</minimizeJar>

在 Maven Shade 插件中,它会自动从 jar 中删除 javafx-graphics。我通过添加一个显式过滤器来包含所有 openjfx 依赖项来解决它,即添加

<filter>
    <artifact>org.openjfx</artifact>
    <includes>
           <include>**</include>
    </includes>
</filter>

到插件的配置

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Maven无法在Windows JDK 11上运行,它说未设置JAVA_HOME

来自分类Dev

Maven组件无法在Windows Server上运行

来自分类Dev

Maven组件无法在Windows Server上运行

来自分类Dev

本机打包的JavaFX应用程序无法在Windows上运行

来自分类Dev

我无法在Windows上运行Spring Boot Jar

来自分类Dev

无法通过在 Windows 7 上双击来运行 .jar 文件

来自分类Dev

OpenTK / OpenGL:无法使着色器在VAO上运行

来自分类Dev

从jar运行时无法加载javafx资源

来自分类Dev

从jar运行时无法加载javafx资源

来自分类Dev

以 sudo 身份运行 javafx jar:无法打开 DISPLAY

来自分类Dev

使用 Spring Boot Maven 进行着色无法正常工作

来自分类Dev

为什么我无法运行Maven项目的jar文件?

来自分类Dev

如何访问Maven着色jar中的文件

来自分类Dev

无法在AWS EMR上运行jar或sparkApplication

来自分类Dev

Jar文件无法在SWT Mac上运行

来自分类Dev

无法在 ubuntu 上运行 java jar

来自分类Dev

无法在Windows上运行Laravel

来自分类Dev

无法在Android Maven项目上运行Proguard

来自分类Dev

我的jar在Ubuntu上运行,但不在Windows上运行

来自分类Dev

Maven着色插件运行两次

来自分类Dev

使用Processbuilder运行jar无法正常工作

来自分类Dev

无法使用 maven-jar-plugin 构建 jar

来自分类Dev

Jenkins在Linux或Windows上运行Maven构建

来自分类Dev

无法使用Maven运行npm grunt bower

来自分类Dev

使用Eclipse制造的可运行Jar,如果未安装JDK,则无法在PC上运行

来自分类Dev

Pycharm终端无法在Windows 10上使用VirtualEnv正常运行

来自分类Dev

无法在Windows 7中运行jetty-maven-plugin

来自分类Dev

无法在Windows 7中运行jetty-maven-plugin

来自分类Dev

Linux上JavaFX运行时JAR文件jfxrt.jar的位置是什么?

Related 相关文章

热门标签

归档