我制作了以下代码,将图片放入我的java程序中:
private String ICET = "." + File.seperator + "Bilder/ICET.jpg"
//some code
label.setIcon(new ImageIcon(ICET));
//some code
标签有一个IconImage,它在每个工作区都有一个文件夹“Bilder”,它与程序位于同一个文件夹中。 它也可以用作jar文件,但是如果我使用launch4j将jar文件转换为exe文件,程序就不会显示图片。
答案 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复制到新位置时,它们不会也可能会丢失,从而使程序不再起作用。