[英]Maven Jar file read external images
您好,我最近将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);
}
}
它进入循环并找到文件,但是当使用无效URL调用新Image(file.getAbsolutePath())时,它将崩溃:无效URL或未找到资源异常。
我尝试了toExternalForm()等各种方法,但是没有任何帮助,无论我做什么,我仍然会遇到异常。
我真的迷路了,也许您可以给我一个提示,指出我做错了什么。
提前致谢
ROBI
嗨,我让它开始运行!
解决方案是:
Image img = new Image(file.toURI().toString());
感谢你的帮助
奇怪的是,它与我正在运行java -jar jarfile.jar的目录有所不同,仅当我在同一文件夹中执行此操作时,它才有效
尝试这个:
URL resource = YourClass.class.getResource("FILENAME");
Paths.get(resource.toURI()).toFile();
只要资源实际上是文件而不是JAR条目,它将找到任何资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.