缺少 JavaFX 应用程序 class
Missing JavaFX application class
我有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.
那是因为您使用目录路径而不是完全限定的 class 名称调用您的应用程序。完全限定的 classname 由包名称和 class 名称组成。在您的情况下,这是 mypackage.MyApp
.
假设您编译的 class 与源 .java
文件位于同一文件夹中,这样称呼它:
java -cp myjava/src mypackage.MyApp
安装 Java 15 和 JavaFX 13 以及其他一些更改后,我也收到“缺少 JavaFX 应用程序 class mypackage/MyApp”和在我的例子中,包名和应用程序是正确的。我正在使用一些 JDK15 预览功能,我需要 JVM 选项 --enable-preview。无奈之下,我开始改变事情,因为这曾经有效。当我删除 --enable-preview 选项时,我收到了有关我正在使用预览功能但没有指定它的错误消息。这告诉我装载程序实际上正在寻找我的应用程序。在这种情况下,错误消息“缺少 JavaFX 应用程序 class mypackage/MyApp”是不正确的。问题是我需要包含一些 MyApp 所依赖的用户实用程序 classes。一旦我在 class 路径中包含相关的 classes,一切都很好。
我有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.
那是因为您使用目录路径而不是完全限定的 class 名称调用您的应用程序。完全限定的 classname 由包名称和 class 名称组成。在您的情况下,这是 mypackage.MyApp
.
假设您编译的 class 与源 .java
文件位于同一文件夹中,这样称呼它:
java -cp myjava/src mypackage.MyApp
安装 Java 15 和 JavaFX 13 以及其他一些更改后,我也收到“缺少 JavaFX 应用程序 class mypackage/MyApp”和在我的例子中,包名和应用程序是正确的。我正在使用一些 JDK15 预览功能,我需要 JVM 选项 --enable-preview。无奈之下,我开始改变事情,因为这曾经有效。当我删除 --enable-preview 选项时,我收到了有关我正在使用预览功能但没有指定它的错误消息。这告诉我装载程序实际上正在寻找我的应用程序。在这种情况下,错误消息“缺少 JavaFX 应用程序 class mypackage/MyApp”是不正确的。问题是我需要包含一些 MyApp 所依赖的用户实用程序 classes。一旦我在 class 路径中包含相关的 classes,一切都很好。