【发布时间】:2014-09-26 11:51:56
【问题描述】:
我有两个 JavaFX 项目。
- 子项目:带有标签的 AnchorPane。 (和一个控制器连接到 它)
- 主要项目:带有按钮的 AnchorPane。你点击它,它会
弹出一个带有子项目的新窗口。
所以子项目和主项目都有自己的 fxml 文件和控制器。
当我使用 NetBeans 编译主项目时,它工作得非常好。 但是,一旦我将主项目部署到其他计算机,它会给我一条错误消息“系统找不到指定的文件”
我认为问题是我在弹出 子窗口。我一直在尝试从外部库中获取 Jar 文件中 fxml 的路径, 但我找不到任何解决方案。谁能帮帮我?
这是我打开一个新的子项目窗口的代码 主项目的控制器
@FXML
private void handleButtonAction() throws IOException() {
FXMLLoader loader = new FXMLLoader(new File("D:/SubProjAddress/SubProject.fxml").toURI().toURL());
Parent root = (Parent)loader.load();
Scene scene = new Scene(root);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
}
我正在使用 Java 8,netbeans。 提前谢谢你
【问题讨论】:
-
我找到了一个 Oracle 网页“5.8.3 打包复杂应用程序”,上面写着“对于可双击的 JAR 文件,请考虑将所有内容重新打包成一个巨大的 JAR 文件并加载本机库和数据文件从 JAR 里面。”但是,我不知道这是什么意思..
-
new File("D:/SubProjAddress/SubProject.fxml")是 fxml 的绝对路径。您需要使用相对路径。 -
我试过 ("../SubProjAddress/SubProject.fxml") 但它只适用于 netbeans 编译器
-
试试这样的
(/packagename/SubProject.fxml) -
(/packagename/SubProject.fxml) 即使使用 NetBeans 编译器也不起作用。它只是将我引导到 D:/SubPakage/SubProject.fxml
标签: java netbeans deployment javafx-8