我有两个JavaFX项目。JavaFX与其他JavaFX项目部署
- 子项目:带标签的AnchorPane。 (和一个控制器连接到 它)
- 主项目:AnchorPane带按钮。你点击它,它会弹出一个带有子项目的新窗口。
所以子项目和主项目都有自己的fxml文件和控制器。
当我使用NetBeans编译主项目时,它工作得很好。 但是,一旦我将主项目部署到其他计算机,它给了我一个错误消息“系统找不到指定的文件”
我认为问题是,我使用绝对路径的子项目的fxml位置时,我弹出打开 子窗口。我一直试图从外部库中获取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内部加载本机库和数据文件。 “但是,我不知道它是什么意思.. – user2932011 2014-09-26 12:21:02
'新文件(“D:/SubProjAddress/SubProject.fxml”)'是fxml的绝对路径。你需要使用相对路径。 – ItachiUchiha 2014-09-26 12:42:10
我试过(“../SubProjAddress/SubProject.fxml”),但它只能使用netbeans编译器 – user2932011 2014-09-26 13:01:33