我有兩個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