1

在我的项目中,我使用系统托盘,当我编译程序时,一切正常,并且我用于系统托盘的图标出现了。

图标放在项目文件夹中,图标相关代码为

Image icon = Toolkit.getDefaultToolkit().getImage("Icon.png");

trayIcon = new TrayIcon(icon, "Program name", popup);
trayIcon.setImageAutoSize(true);

tray.add(trayIcon);

正如我所说,一切正常,但是当我将项目导出为可运行的 jar 时,程序将运行但图标不会显示,但它只是空白。

4

2 回答 2

6

如果您想从 .jar 文件中加载资源,请使用getClass().getResource(). 这将返回具有正确路径的 URL。

Image icon = ImageIO.read(getClass().getResource("image´s path"));
于 2013-07-08T21:10:07.933 回答
5

要访问 jar 中的图像,请使用Class.getResource().

我通常会做这样的事情:

InputStream stream = MyClass.class.getResourceAsStream("Icon.png");
if(stream == null) {
   throw new RuntimeException("Icon.png not found.");
}

try {
   return ImageIO.read(stream);
} catch (IOException e) {
   throw new RuntimeException(e);
} finally {
   try {
      stream.close();
   } catch(IOException e) { }
}
于 2013-07-08T21:05:37.857 回答