【发布时间】:2016-04-17 18:35:21
【问题描述】:
我的项目在 Eclipse 中运行正常,但是当我创建该项目的 jar 文件并尝试通过 cmd 运行它时,它显示“未设置位置”错误。
我的项目结构是:
方法是(在eclipse中运行):
@FXML
private void RegularCustomer(ActionEvent event) throws Exception{
Stage stage = (Stage) dailySales.getScene().getWindow();
Scene scene = dailySales.getScene();
FXMLLoader loader = new FXMLLoader(getClass().getResource("../customer/CustomerHome.fxml"));
System.out.println(loader.getLocation());
scene.setRoot(loader.load());
stage.setScene(scene);
stage.show();
}
这段代码有什么问题?
有一些相关的问题,但它们与它不同。他们的代码没有在 IDE 中运行,但我的代码在 IDE 中运行。
仅供参考:我对文件夹结构进行了一些更改,并且能够成功运行。但这种结构很糟糕,因为我将所有 FXML 文件和控制器放在同一个包中。
【问题讨论】:
-
@jewelsea 虽然承认在 SO/javafx 上有很多这样的问题,(我在搜索时永远找不到它们)该问题的答案都没有真正解决这里的确切问题(我'将解释为“为什么这适用于文件系统类加载器但不适用于 jar 类加载器”,我认为它真的更接近stackoverflow.com/questions/13046150)。有人可能应该写一个包罗万象的“如何在 JavaFX 中加载资源”Q/A,因为它似乎会导致很多问题......
标签: java eclipse javafx javafx-8