3

一个关于实现系统托盘图标的非常简单的教程

问题是,如果我从 Eclipse 运行我的应用程序,我可以看到托盘中的图标,但如果我导出并运行可运行的 jar 文件,我就看不到它。我的应用程序中有其他图像可以在同一个文件夹中正常工作。

托盘正在工作(左右单击它)但不显示图像,就像您在图像中看到的那样(顶部的 jar 文件,底部的 eclipse):

缺失图像的示例

为什么?谢谢你,对不起我的英语!

编辑:我终于找到了需要访问图像的解决方案:

Image img = Toolkit.getDefaultToolkit().getImage(MyClass.class.getResource("/images/asd.png"));
4

1 回答 1

1

问题是您包含图像文件的方式。创建图像时,您必须在 JAR 中包含该图像,并且您必须以不同的方式访问该图像:

try {
    InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("wing16.png");
    BufferedImage img = ImageIO.read(is);
}
catch (IOException e) {}

您可以只使用该img变量在 JAR 中设置图像。

更新:

获取所有类文件和图像并转到命令行:

jar -cvfm Test.jar Manifest.mft *.class image.png

替换Manifest.mft为您的清单文件名。替换image.png为您要显示的图像(如果需要,您可以包含更多图像)

于 2011-02-18T02:12:47.120 回答