簡體   English   中英

無法啟動javaFX項目中的應用程序

[英]Failed to start application in javaFX project

在將Maven依賴項添加到我的JavaFX程序並創建了一個名為“帶有兩個類的算法”的新程序包之后,我的應用程序無法啟動。

引發以下異常:

原因:java.lang.RuntimeException:應用程序啟動方法中的異常原因:java.lang.NullPointerException:必需的位置。

等等...

我努力了:
JavaFX“位置是必需的。” 即使在同一包裝中

應用程序啟動方法java.lang.reflect.InvocationTargetException中的異常

兩者都不起作用

在下面的圖像中是我的項目結構,非常感謝您的幫助。 似乎sample.fxml無效...

編輯:
在資源目錄中重新定位fxml文件也不起作用

圖片

我只是大致復制了此代碼,並將其放在我的IntelliJ上,它就像一個魅力。 也許您只是缺少資源名稱上的/

這是我使用的確切代碼:

package hello;

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

import java.io.IOException;

public class Hello extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent parent = FXMLLoader.load(Hello.class.getResource("/hello.fxml"));
        Scene scene = new Scene(p, 400, 400);
        primaryStage.setTitle("my app");
        primaryStage.setScene(scene);
        primaryStage.centerOnScreen();
        primaryStage.show();
    }

    public static void main(String[] args) throws IOException {
        launch(Hello.class);
    }
}

FXML文件:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Text?>
<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml"
            fx:controller="hello.Hello"
            prefHeight="400.0" prefWidth="600.0">
    <VBox>
        <Text>Hello</Text>
    </VBox>
</AnchorPane>

與IntelliJ一起運行。 作品。 創建一個用Java -jar運行的Jar,也可以。

您的IDE IntelliJ使用模式識別來匹配文件擴展名,從而從類路徑中加載資源文件。 默認情況下,IntelliJ包括JPG,PNG,HTML等擴展名。

這意味着您需要為FXML手動指定要編譯器查找的文件擴展名。

以下是一些有關如何實現此目標的簡單說明: https : //www.jetbrains.com/help/idea/working-with-projects.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM