gpt4 book ai didi

gradle - 缺少 JavaFX 应用程序类 com.MainApp

转载 作者:行者123 更新时间:2023-12-03 05:05:51 25 4
gpt4 key购买 nike

我正在尝试从 java-1.8 迁移到 java-11 ..
我遇到了错误“缺少 JavaFX 应用程序类 com.MainApp”,我在网上寻找解决方案并找到了其中的几个:

https://openjfx.io/openjfx-docs/#modular

Maven JavaFx project compiles but running from console give "Missing JavaFX application class" error msg

上述方法是“创建一个新的主类并调用扩展应用程序的类的主方法”

但是,我仍然面临以下问题:

我通过命令行运行它并使用以下命令:

1.Java -jar abc.jar

Exception in thread "main" 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:174) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at com.amx.rms.transporter.tools.config.MainDivert.main(MainDivert.java:7) Caused by: java.lang.ClassNotFoundException: javafx.application.Application 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) ... 10 more



2.java --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib"--add-modules=javafx.controls,javafx.fxml,javafx.base,javafx.media,javafx .web,javafx.swing -jar abc.jar

Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/Context at com.amx.rms.transporter.tools.config.MainDivert.main(MainDivert.java:7) Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.Context 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) ... 1 more



以下是我的新主课:
public class MainDivert {

public static void main(String[] args) throws Exception {
try {
MainApp.main(args);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}

不确定我错过了什么?

最佳答案

你的第二种方法看起来很有希望。您已经设法添加了 JavaFX 模块。所以这行得通。
看来,您还依赖于其他几个库,例如 logback。您还必须将它们添加到类路径(或模块路径)中。

Gradle 实际上可以为您管理所有依赖项。您可以使用 gradle run 启动您的应用程序.见 https://openjfx.io/openjfx-docs/#gradle

如果要从命令行运行 jar,则必须手动列出类路径(模块路径)中的所有依赖项。这可能会很痛苦。

关于gradle - 缺少 JavaFX 应用程序类 com.MainApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com