首页 > 解决方案 > 无法使用 JDK-11 在 IntelliJ IDEA 上运行我的 JavaFX 项目

问题描述

我第一次在 JavaFX 应用程序的 IntelliJ IDEA 中做一个项目。我无法运行我的代码。

当我第一次构建->运行时,我收到一条错误消息,说我的模块中需要 kotlin stdlib,然后我下载了 kotlin 标准库并将其添加到我的模块中。但现在我的代码中出现了 java.lang.NoClassDefFoundError 。

示例.Main


import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

模块信息.java 文件

module Calculator {

    requires javafx.fxml;
    requires javafx.controls;
    requires kotlin.stdlib;

    opens Sample;
 }

.xml 文件



<GridPane fx:controller="Sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
</GridPane> 

错误信息:

 "C:\Program Files\Java\jdk-11.0.1\bin\java.exe" "-javaagent:C:\Coding_Setups\JetBrains\IntelliJ IDEA Community Edition 2019.1.2\lib\idea_rt.jar=52562:C:\Coding_Setups\JetBrains\IntelliJ IDEA Community Edition 2019.1.2\bin" -Dfile.encoding=UTF-8 -classpath "G:\JavaFXproject\Calculator\out\production\Calculator;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.swing.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.web.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.media.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.graphics.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.fxml.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.controls.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx.base.jar;C:\Coding_Setups\javafx lib\javafx-sdk-11.0.2\lib\javafx-swt.jar" sample.Main

Error: Could not find or load main class sample.Main
Caused by: java.lang.NoClassDefFoundError: Sample/Main (wrong name: sample/Main)

我很困惑为什么我的 javafx 项目需要 kotlin stdlib 以及为什么我将它添加到我的模块中,即使我还没有更改提供的代码,我也会收到一个新错误。

标签: intellij-ideajavafx-11

解决方案


推荐阅读