首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缺少JavaFX应用程序类com.MainApp

缺少JavaFX应用程序类com.MainApp
EN

Stack Overflow用户
提问于 2019-11-18 11:13:36
回答 1查看 1K关注 0票数 0

我试图从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

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

然而,我仍然面临以下问题:

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

1.1.Java -jar abc.jar

线程"main“中的java.base/java.lang.ClassLoader.defineClass1(Native异常: javafx/application/Application at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ( java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802) )在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)在com.amx.rms.transporter.tools.config.MainDivert.main(MainDivert.java:7)引起的: 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

2.java -模块-路径"C:\Program \Java\JavaFXSDK-11.0.2\lib“--add-module=javafx.Controls、javafx.fxml、javafx.base、javafx.media、javafx.web、javafx.swing -jar abc.jar

com.amx.rms.transporter.tools.config.MainDivert.main(MainDivert.java:7)线程"main“java.lang.NoClassDefFoundError: ch/qos/logback/core/Context中的

异常,原因是: java.lang.ClassNotFoundException: ch.qos.logback.core.Context at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)在java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) .再多1

下面是我的新主修班:

代码语言:javascript
运行
复制
public class MainDivert {

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

不知道我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-11-18 12:16:39

你的第二种方法看起来很有希望。您已经成功地添加了JavaFX模块。所以这起作用了。看起来,你有几个你依赖的小伙伴,比如logback。还必须将它们添加到类路径(或modulepath)中。

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

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

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

https://stackoverflow.com/questions/58913293

复制
相关文章

相似问题

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