我有一个项目,图像存储为我想要使用的徽标。
URL logoPath = new MainApplication().getClass().getClassLoader().getResource("img/logo.jpg");
使用该方法,我获取文件的URL并将其转换为字符串。然后我必须将其子串到5以除去此输出“file:/ C:/Users/Stephen/git/ILLA/PoC/bin/img/logo.jpg”
然而,当我将它作为一个jar导出并运行时,我遇到了麻烦。 URL现在读取/ILLA.jar!/,我的图片只是空白。我有一种直觉感觉它正在绊倒我所以如何解决这个问题呢?
干杯
答案 0 :(得分:1)
你快到了。
jar中的图像被视为资源。您需要使用类路径引用它们 只需使用getClass()。getResource:类似于:
。的getClass()的getResource( “/图片/ logo.jpg”)); 其中“images”是jar文件中的包,其路径如上所述
查看调用中的前导/ - 这将有助于正确访问路径(使用绝对而不是相对)。只需确保路径正确
另见:
答案 1 :(得分:1)
见这里:Create a file object from a resource path to an image in a jar file
String imgName = "/resources/images/image.jpg";
InputStream in = getClass().getResourceAsStream(imgName);
ImageIcon img = new ImageIcon(ImageIO.read(in));
请注意,您需要在存档中使用流作为资源。