如何加载 *.jar 文件之外的 FXML 文件
How to load FXML file which is out of *.jar file
这是我在 Stack 上的第一个 post,我一直在寻找我的问题的答案,但我没有找到任何有用的东西。
我正在学习 Java,所以要温柔 ;)
我的问题是,我不想将 "jar" 中的所有内容制作成一个文件。我必须加载不在 *.jar 文件中的 FXML 文件。
例如:
我正在制作我的 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 作为参数的加载命令。您可以像这样轻松获得 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();
}
这是我在 Stack 上的第一个 post,我一直在寻找我的问题的答案,但我没有找到任何有用的东西。 我正在学习 Java,所以要温柔 ;)
我的问题是,我不想将 "jar" 中的所有内容制作成一个文件。我必须加载不在 *.jar 文件中的 FXML 文件。 例如: 我正在制作我的 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 作为参数的加载命令。您可以像这样轻松获得 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();
}