当前位置: 首页 > 知识库问答 >
问题:

JavaFX不能以jar文件的形式运行project

狄宗清
2023-03-14

我一直试图将一个maven项目打包到一个jar文件中,但它无法运行,因为javafx似乎有一个问题,下面是我的构建路径、项目结构(使用JavaFX14)和依赖关系

我尝试了两种方式来运行,第一种方式是使用提供的vm参数运行我的主应用程序文件--module-path“c:\program files\java\javafx-sdk-14.0.1\lib”--add-modules=all-module-path。在ide中工作很好,但当试图作为jar文件运行时,会出现以下错误...

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

下一件我厌倦的事情是创建一个独立的主并从它运行,就像这样

package ie.perception.main;   
import javafx.application.Application;

public class Main {

    public static void main(String [] args) {
        Application.launch(App.class);  
    }
}
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:567)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
        at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:515)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:423)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:417)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:688)
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:416)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at ie.perception.main.Main.main(Main.java:8)
        ... 5 more
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 16 more

有什么想法吗?

共有1个答案

翁宏茂
2023-03-14

问题可能是您在导出时使用了错误的设置。在这一步中,由于我已经有一段时间没有使用eclipse,我不能确切地告诉您是哪一个,但请尝试所有三个Libary处理设置。(我想不是第一次就是第二次)

 类似资料:
  • 问题内容: 我是新手,也想从C#代码运行jar文件。但是似乎jar文件没有打开,命令提示符很快消失了,因为我看不到任何错误消息。 这是我的代码, 谁能把我引向正确的方向?我在这里做什么错? 问题答案: 您将必须提供-jar切换到java命令。 例如,执行JAR文件的命令是, 所以你可以试试

  • 我在intelliJ中创建了一个Java /JavaFX应用程序。我创建了它作为一个Java的应用程序,后来为JavaFX导入了必要的部件。 我尝试了Izpack、Javapackager、Jpackager、Jpackage和创建胖jar中的各种安装程序/打包程序创建者。我什么都不行。 该应用程序在IntelliJ中运行良好。 为什么它不会在别处运行? 这是我的POM、代码和错误消息。 如果你能

  • 我正在尝试将我的checkers程序从Eclipse导出到一个可运行的jar文件中。我得到一个jar文件,但它不运行。。。它给了我关于未找到的类的神秘错误消息。jar文件的意义不在于它包含了它所需要的所有类吗?我不知道现在该做什么。 这是我运行罐子时得到的: 知道是的一个内部类可能会有所帮助?有什么问题吗?我在导出向导中尝试了“提取所需库”和“打包所需库”。 我还尝试从命令行使用,但效果不太好。以

  • 我有一个项目配置与Gradle和Kotlin。这是一个命令行实用程序,我希望能够从我的终端运行生成的jar。但是,我得到以下错误: 用于生成jar的命令是,用于运行jar的命令是。 我试着遵循官方文档,也试着使用这些资源:1、2和3,但没有任何运气。

  • 问题内容: 首先,我正在学习Java,但是我对Java还是很陌生,所以复杂的代码将困扰我。 当我下载一个.jar文件说要向我的世界安装一个mod并双击它时,它无法运行。装载轮转动大约两秒钟,然后停下,没有其他反应。我知道的.jar设置正确,因为它使用命令通过cmd运行 因此,我已经尝试使用默认程序设置为java \ jdk1.7.0_25 \ jre \ bin中的javaw.exe来运行它。同样