0

我已经尝试搜索,但仍然没有得到解决方案。当我导出到 jar 文件时,我的所有图像突然不再工作了。它们在 Eclipse 中运行良好,我确保它们在 jar 文件中。我尝试使用获取资源方法并使图像加载器类自动上升到目录树,但它仍然失败。这是我所做的:

public static Image load(String path)
{   String temp = path;
    Image image = null;
    try {

     image = new ImageIcon(path).getImage();


    } 

    catch ( Exception e )
    {   
        try {
         while (image == null )
         {
              image = new ImageIcon("../"+ path).getImage();
         }
         if ( path.equals("../../../../../../"+ temp))
         {
             while ( image ==null)
             {
                 image = new ImageIcon("./"+ path).getImage();
             }
         }
        }
        catch ( Exception ae)
        {


        System.err.println("cannot locate image");
    }} 


    return image;
}   

我将发送它的路径如下:“doc/icon.png”

我已将所有图像放在 doc 文件夹中,结构是最终项目,里面有 doc 文件夹,然后是包含所有包的 src 文件夹。

4

2 回答 2

5

尝试使用这个:

Image.class.getClassLoader().getResource("/filepath/filename").getFile()
于 2013-06-19T10:55:29.783 回答
0

图像路径不是“蛮力”,而是试图找出您尝试从中加载图像的路径。您可以使用以下内容进行查找

System.out.println("Path: " + (this.getClass().getClassLoader().getResource("")).getPath());

之后尝试像这样或像@Balint Bako allready sed 那样加载它。

Image img;
URL url = new File("the path you found out").toURI().toURL();
BufferedImage img = ImageIO.read(url);
于 2013-06-19T12:17:22.487 回答