Java SystemTray图标

a really simple tutorial on implementing a system tray icon.

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

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

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

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

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

解决方法

问题是您包含图像文件的方式.您必须在创建JAR时将图像包含在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替换为您想要显示的图像(如果需要,可以包含更多图像)

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...