找不到Java主类或加载错误

找不到Java主类或加载错误,java,javafx,main,Java,Javafx,Main,我是JavaFX新手,目前我正在尝试构建一个简单的Stage,其中包含一些组件。我已经导入了jfxrt.jar文件,并且能够在我的类App.java中成功地使用这些库。然而,当我运行代码时,控制台上会显示以下错误消息: Error: Could not find or load main class App Reason: java.lang.NoClassDefFoundError: javafx/application/Application 这是我的代码: import javafx.a

我是JavaFX新手,目前我正在尝试构建一个简单的Stage,其中包含一些组件。我已经导入了jfxrt.jar文件,并且能够在我的类App.java中成功地使用这些库。然而,当我运行代码时,控制台上会显示以下错误消息:

Error: Could not find or load main class App
Reason: java.lang.NoClassDefFoundError: javafx/application/Application
这是我的代码:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;


public class App extends Application {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        launch(args);
    }

    @Override
    public void start(Stage firstStage) throws Exception {
       firstStage.setTitle("Image Processing App - Andromachi Rozaki");     
       Button button = new Button();
       button.setText("Open Image");

       StackPane layout = new StackPane();
       layout.getChildren().add(button);

       Scene scene = new Scene(layout, 300, 250);
       firstStage.setScene(scene);
       firstStage.show();
    }

}

有人知道为什么会发生这种情况,以及我如何着手解决它吗?提前谢谢

编辑


我正在运行链接中的
App.java
文件

不确定您使用的是什么IDE,但您可以尝试将其放在VM选项中


--模块路径路径\u到\u JAR--添加模块javafx.controls,javafx.fxml
事情是javafx未捆绑在当前版本的Oracle JDK中。 我认为您使用的是Java11,这意味着JavaFX不包括在内

我知道您已经下载了JavaFX库,您是否将它作为库包含在IDE中


从屏幕截图中,我不知道您使用的是哪个IDE,但大多数情况下,您可以将jar文件添加到项目的文件夹中,右键单击它,然后找到类似将项目添加为库的选项。这可能会解决您的问题。

类路径是否提供了所有必需的库?您确定要执行正确的文件吗?您的设置是什么?@Nearoo我已经更新了我的postlook以查找jfxrt.jar的路径,并将其包含到您计算机的类路径中。例如在Windows上:CLASSPATH=%CLASSPATH%;你的JAR文件没有提到
javafx.JAR
或者它在类路径中的任何调用。我已经更新了帖子上的照片。我已经导入了库,我可以在我引用的库下看到它。。。库现在不是导入了吗?您仍然没有告诉我们您正在使用哪个IDE。问题是:若在编译时并没有错误,那个么应该正确引用库。哦,对不起!我正在使用EclipseClipseIDE的JavaFX插件。请尝试在Internet上查找,否则您可能会尝试从以下位置安装完整的JavaFX SDK:@hispaniccoder JavaFX的一个怪癖是,如果您的主类是
应用程序的子类
,则JavaFX模块必须打开并从modulepath使用,而不是从类路径。这至少适用于JavaFX11到JavaFX13。查看如何将JavaFX库放在modulepath上;它解释了主要JavaIDE和/或构建工具的过程。