首页 > 解决方案 > 使用 JavaFX 在 IntelliJ 上创建 Jar 文件时遇到问题

问题描述

最近我一直在做我的个人项目,我决定使用 JavaFX 。我正在使用的 IDE 是 IntelliJ IDEA,我很难用它来制作一个 Jar。我已经尝试了很多教程,但似乎没有任何效果。如果有人能给我一些关于哪里出了问题的提示,我将不胜感激。

首先,我尝试在 Project Structure 选项卡上包含所有依赖项并构建所需的工件。

https://i.stack.imgur.com/zk2js.png

生成的 Jar 文件不起作用,当我尝试运行它时出现以下错误:

Error: JavaFX runtime components are missing, and are required to run this application

尽管 Jar 非常没用,但我找到了一种让它“工作”的方法,我在 cmd 上运行了以下命令

java --module-path "%Path to JavaFX SDK%" --add-modules javafx.controls,javafx.fxml -jar %Path to Jar%

所以我决定搜索可能丢失的内容并尝试了几种解决方案但不起作用,其中一个试图创建一个没有将 Application 扩展为主类的虚拟类,但这会导致灾难,因为我得到了这个结果:

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:832)
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:832)

我什至尝试手动完成这一切,因为我怀疑 IntelliJ 省略了步骤,不用说它也没有很好地结束。我还将在项目结构中留下一些打印件,以期帮助了解问题所在。

https://i.stack.imgur.com/zk2js.png 

https://i.stack.imgur.com/lCoWl.png

https://i.stack.imgur.com/SUqHd.png

https://i.stack.imgur.com/wWv1f.png

https://i.stack.imgur.com/GXtc6.png

https://i.stack.imgur.com/CQjMO.png

https://i.stack.imgur.com/BQeuu.png

标签: javaintellij-ideajavafxjar

解决方案


推荐阅读