这是我在 Stack 上的第一篇文章,我一直在寻找问题的答案,但没有找到任何有用的东西。 我正在学习 Java,所以要温柔一点;)
我的问题是,我不想用“jar”中的所有内容制作一个文件。我必须加载 FXML 文件,该文件不在 *.jar 文件中。 例如: 我正在制作位于 JavaFXMLApplication 文件夹中的 FXML 文件,我运行“JavaFXApplication.jar”文件,并且该应用程序使用我刚刚制作的 FXML。
我希望我能描述清楚:)
编辑: 我找到了另一种解决方案,它对我来说效果更好......
File file = new File("absolutPathToFile\\FXMLDocument.fxml");
InputStream is = new BufferedInputStream(new FileInputStream(file));
Pane root = new Pane();
FXMLLoader loader = new FXMLLoader();
try
{
root = loader.load(is);
}
catch (IOException ex)
{
System.out.println(ex);
}
希望对大家有帮助
干杯:)
最佳答案
您可以从任何地方加载 FXML 文件。一种可能性是使用将 URL 作为参数的 load 命令。您可以像这样轻松获取该 URL:
try {
File file = new File("../../FXMLDocument.fxml");
if (file.canRead()) {
URL url = file.toURI().toURL();
Pane root = FXMLLoader.load(url);
} else {
System.err.println("File does not exist.");
}
} catch (IOException e) {
e.printStackTrace();
}
关于java - 如何加载 *.jar 文件之外的 FXML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36348880/