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

回到顶部