我目前正在编写一个程序,我需要将其作为 jar 发送给 friend 。该程序有需要加载的图像才能使程序正常工作,我希望所有图像都包含在一个 jar 中。目前它不适用于可执行 jar 或当我通过命令行运行它时。然而,它适用于 netbeans。
这是我使用的代码:
加载我正在使用的图像:
protected ImageIcon createImageIcon(String path, String description)
{
java.net.URL imgURL = getClass().getClassLoader().getResource(path);
if (imgURL != null)
{
return new ImageIcon(Toolkit.getDefaultToolkit()
.getImage(imgURL),description);
}
else
{
System.err.println("Couldn't find file: " + path);
return null;
}
}
对于URL我也试过了
getClass().getResource(path)
应该创建图像的行是:
this.img =createImageIcon(File.separator+"."+File.separator
+"resources"+File.separator+"tiles"+File.separator+"tile.png","tile");
我的 jar 文件设置了包含类文件的文件夹和位于其顶层的资源文件夹。
我已经四处寻找解决这个问题的方法,但找不到任何有效的方法。
谢谢。
最佳答案
您的 URL 将评估为 "/./resources/tiles/tile.png"
这没有意义(但可能是您运行时使用的 ClassLoader
来自 NetBeans 的容忍错误。)
尝试删除初始 "/./"
。此外,您不需要对 File.separator
的引用,因为该字符串被视为相对 URL,并且正斜杠始终有效。
关于java - 我的 jar 文件不会加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675617/