繁体   English   中英

Maven Jar文件读取外部图像

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM