Pet*_*ter 3 java eclipse maven
伙计们,
我正在使用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");
}
}
Run Code Online (Sandbox Code Playgroud)
当应用程序未打包为jar文件(非常适合调试)时,这可以正常工作.但是,当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);
}
Run Code Online (Sandbox Code Playgroud)
此函数可用作在图像目录中getImage("images/some-image.png")加载some-image.png文件.
如果ImageIcon需要,那么简单地调用new ImageIcon(getImage("images/some-image.png"))就可以了.
| 归档时间: |
|
| 查看次数: |
7174 次 |
| 最近记录: |