【发布时间】:2015-06-30 06:05:26
【问题描述】:
您好,我最近将我的 JavaFX8 项目更改为 Maven,除了加载位于 JAR 旁边的文件外,一切正常。这以前有效,但不再有效。
文件夹结构:
要加载的图标位于 /target/icons JAR 文件位于 /target
我读取文件的代码如下:
String applicationDir = (new File(".")).getAbsolutePath();
String iconsDir = applicationDir+"/target/icons/";
File[] files = new File(iconsDir).listFiles();
for (File file : files) {
if (file.getName().endsWith(".png")) {
System.out.println(file.getAbsolutePath());
Image img = new Image(file.getAbsolutePath());
ICONLIBRARY.put(file.getName().split("\\.")[0].toUpperCase(), img);
}
}
它进入循环并找到文件,但是当 new Image(file.getAbsolutePath()) 被调用时它崩溃了 无效 URL:无效 URL 或找不到资源异常。
我用 toExternalForm() 等尝试了各种东西,但没有任何帮助,无论我做什么,我仍然得到异常。
我真的很迷茫,也许你可以给我一个提示我做错了什么。
提前致谢
罗比
【问题讨论】:
-
您将这些图标放在源代码树的什么位置?
-
您好,此图标位于 jar 文件旁边,这里是完整路径,例如:/Users/robi/git/projectxy/target/icons/icon_small.png jar 位于 /Users/robi/ git/projectxy/target/jarfile.jar 但正如我所说,查找文件的循环只是将文件名传递给图像失败