缺少JavaFX应用程序类

时间:2016-09-03 15:21:42

标签: java javafx javafx-2 javafx-8

我有这样的java代码:

package mypackage;

import javafx.application.Application;
import javafx.stage.Stage;

public class MyApp extends Application{
    public static void main(String args[]){
        launch(args);
    }
    public void start(Stage primaryStage){
        primaryStage.show();
    }
}

我已经在~/myjava/src/mypackage/MyApp.class编译了它。 然后,当我从

运行时
~$ java -cp myjava/src mypackage/MyApp

为什么会出现错误:

Missing JavaFX application class mypackage/MyApp

我使用的是JDK 8.

你能帮助我吗?

2 个答案:

答案 0 :(得分:5)

这是因为您使用目录路径而不是完全限定的类名调用应用程序。完全限定的类名由包名和类名组成。在您的情况下,这是mypackage.MyApp

假设您编译的类与源.java文件位于同一文件夹中,请按以下方式调用:

java -cp myjava/src mypackage.MyApp

答案 1 :(得分:0)

在安装 Java 15 和 JavaFX 13 以及其他一些更改后,我也收到了“缺少 JavaFX 应用程序类 mypackage/MyApp”的消息,在我的情况下,包名称和应用程序是正确的。我正在使用一些 JDK15 预览功能,我需要 JVM 选项 --enable-preview。无奈之下,我开始改变事情,因为这曾经奏效。当我删除 --enable-preview 选项时,我收到了与我使用预览功能相关的错误消息,但没有指定它。这告诉我加载程序实际上正在查找我的应用程序。在这种情况下,错误消息“缺少 JavaFX 应用程序类 mypackage/MyApp”不正确。问题是我需要包含一些 MyApp 所依赖的用户实用程序类。一旦我在类路径中包含了依赖类,一切都很好。