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 に答える