簡體   English   中英

JavaFX:在cmd中未設置位置錯誤

[英]JavaFX: Location is not set error in cmd

我的項目在eclipse中運行良好,但是當我在cmd中運行項目的jar時,出現錯誤java.lang.IllegalStateException: Location is not set. 看來我的FXML沒有正確加載。 我知道這個問題已經問過很多遍了,但是沒有一個可以解決我的問題。 我嘗試使用

FXMLLoader loader = new FXMLLoader(Main.class.getResource("/application/MainWIndowView.fxml"));
AnchorPane root = (AnchorPane) loader.load();

但我仍然有錯誤。

這是我項目的結構

該方法在eclipse中運行:

public void showMainWIndow() throws IOException, SQLException {
    FXMLLoader loader = new FXMLLoader(Main.class.getResource("/application/MainWIndowView.fxml"));
    AnchorPane root = (AnchorPane) loader.load();

    MainWindowController controller = loader.getController();
    controller.setMain(this, primaryStage);
    controller.setKeyPress();
    controller.bindWidthAndHeight();

    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.show();
}

我的代碼有什么問題?

簡單的改變

Main.class.getResource("/application/MainWIndowView.fxml")

Main.class.getResource("MainWindowView.fxml")

並注意大小寫,因為MainWIndowView.fxml有一個大寫的I ,但文件名為MainWindowView.fxml

感謝@James_D指出:

當您在Eclipse中進行開發時運行時,它將從文件系統中加載類。 因此,如果使用的操作系統對待文件的方式相同,無論文件名大小寫如何,則它將找到正確的資源。 顯然,在jar文件(或任何明智的操作系統)中並非如此。

暫無
暫無

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

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