Maven将图像打包在jar文件的根目录中
民间,
我正在使用Eclipse开发Java应用程序。Maven用于创建最终的jar文件。
在应用程序中,我使用一些图像图标作为按钮。按照Internet上的一些说明,我通过单击项目创建了“源”目录。我将源目录命名为“
res”,并将图像移动到该目录。
public static ImageIcon getIcon() { if (isThisJarfile()) {
URL url = this.class.getResources("/res/myicon.png");
return new ImageIcon(url);
}else {
return new ImageIcon("/res/myicon.png");
}
}
当应用未打包为jar文件时,此方法就可以正常工作(非常适合调试)。但是,当maven打包" title="maven打包">maven打包它时,我看到图像放在jar文件的根目录中。以下调用有效:
URL url = this.class.getResource(“ / myicon.png”);
我想知道是否有我忽略的步骤。
请注意,对于图像,我不必对pom.xml进行任何特殊处理。Maven自动将它们拾起(除非将它们放置在错误的位置)。
预先感谢您的帮助。
问候,彼得
回答:
如果您遵循标准的Maven项目目录结构,则最好将所有非Java资源放在下src/main/resources
。例如,您可以创建一个子目录images
,以便完整路径为src/main/resources/images
。该目录将包含您的所有应用程序映像。
打包应用程序时,应格外小心以正确访问图像。例如,以下功能应满足您的所有需求。
public static Image getImage(final String pathAndFileName) { final URL url = Thread.currentThread().getContextClassLoader().getResource(pathAndFileName);
return Toolkit.getDefaultToolkit().getImage(url);
}
可以将此功能用作getImage("images/some-image.png")
为了将some-image.png
文件加载到图像目录中。
如果ImageIcon
需要,则只需致电即可解决问题new ImageIcon(getImage("images/some-image.png"))
。
以上是 Maven将图像打包在jar文件的根目录中 的全部内容, 来源链接: utcz.com/qa/426997.html