通过Windows 10链接启动Jar时,setIconImage不起作用

时间:2018-11-06 21:45:53

标签: java swing jframe icons embedded-resource

怎么了?为什么通过Windows 10链接启动Jar时,在Windows 10任务栏上显示了错误的图像图标(常规的Java图标,而不是我放在Jar中的图标)?

我有一个Jar,它试图用...设置图片图标。

    this.setIconImage(icon);

当使用类似...的命令行启动程序时,它运行良好。

    java -jar C:\Games\RealWar.jar

然后(或当Eclipse运行程序时),Jar内部的正确图标显示在Windows 10任务栏上,

但是,通过Windows 10链接启动Jar时,正确的图标未显示在任务栏上,该链接包含目标字符串,例如...

    "C:\Program Files\Java\jdk1.8.0_152\bin\java.exe" -jar C:\Games\Java\RealWar.jar

在两种情况下,正确的图像图标都显示在程序窗口的左上角,但是当使用Windows 10链接而不是命令行启动程序时,任务栏上的图标为常规图标。 Java图标,而不是罐子里的图标。

我想我也想指出一点,当通过Windows 10链接启动Jar时,Jar仍会找到其ImageIcon。我知道这一点,因为我在程序中设置了一个测试来...

    System.out.println("Icon is null.");

...如果找不到其图标。但是我知道它发现它的Icon很好,因为它说另一个...

    System.out.println("Icon is not null.");

...相反

我也试图将Windows 10链接中的目标字符串缩短为类似...

    java -jar "C:\Games\Java\RealWar.jar"

...但是它不起作用。 Windows 10坚持将“ java”更改为以下任意一种。

    "C:\Program Files\Java\jdk1.8.0_152\bin\java.exe"

...或...

    C:\ProgramData\Oracle\Java\javapath\java.exe

但这两个都不会使Windows 10在Windows 10任务栏上显示正确的图像图标。

那怎么了?为什么通过Windows 10链接启动Jar时,在Windows 10任务栏上显示了错误的图像图标(常规的Java图标,而不是我放在Jar中的图标)?

因此,图像图标为“非null”。 Jar中的程序找到了其图像图标。它在程序窗口的左上角发布了其图像图标。

但是,当通过Windows 10链接而不是命令行启动程序时,任务栏上将仅显示常规Java图标,而不是正确的图像图标。

0 个答案:

没有答案