jar文件让exe丢失了图片

时间:2017-07-01 20:26:14

标签: java image jar exe launch4j

我制作了以下代码,将图片放入我的java程序中:

private String ICET = "." + File.seperator + "Bilder/ICET.jpg"
//some code
label.setIcon(new ImageIcon(ICET));
//some code

标签有一个IconImage,它在每个工作区都有一个文件夹“Bilder”,它与程序位于同一个文件夹中。 它也可以用作jar文件,但是如果我使用launch4j将jar文件转换为exe文件,程序就不会显示图片。

2 个答案:

答案 0 :(得分:0)

使用

new ImageIcon(getClass().getResource("path"));

路径 - >如果是同一个文件夹只放置名称图像:" ICET.jpg"

答案 1 :(得分:0)

最有可能的是,作为exe启动时设置的工作目录与作为jar文件启动时的工作目录设置不同,因此您的程序会查找错误的地方,以便" Bilder"文件夹中。

你可以通过打印它的绝对路径来试试这个,例如像这样:

System.out.println(new File(".").getAbsolutePath());

要解决此问题,您可以尝试将launch4j-config中的chdir - 选项设置为.(单点)。根据{{​​3}}:

  

< CHDIR>

     

可选。将当前目录更改为任意路径   相对于可执行文件。如果您省略此属性或将其保留   空白它没有任何效果。将其设置为。会改变现状   dir与可执行文件位于同一目录。 ..将改变它   父目录,依此类推。

但最后,您应该从类路径加载图像,而不只是从文件夹加载。如果你从类路径中读取它们,它们应该被集成到exe中,否则当用户将exe复制到新位置时,它们不会也可能会丢失,从而使程序不再起作用。