如何更改默认的jar图标

13

首先,我已经阅读了所有关于这个主题的问题,所以这不是一个重复的问题。

我想问的是,一个用Java编写的应用程序(如eclipse)如何使用图标而不是默认的jar图标。

我不关心兼容性,我总是可以为我的程序制作两个不同版本,分别适用于Windows和Linux系统。

如何在Linux和Windows中实现这一点。

非常感谢。

5个回答

15

对于像Eclipse这样用Java编写的程序,在Windows(或Linux或Mac)上有一个特定的图标,实际上它们都有一个特定于操作系统的可执行文件,例如Windows上的eclipse.exe,该文件初始化Java程序。

正是这个可执行文件包含了应用程序图标,而不是Java程序本身。如果您想要做类似的事情,您需要创建一个可执行文件“前门”,并给它一个图标。

如果只是为了自己的美观,只需创建一个jar文件的快捷方式,并更改快捷方式的图标即可。


4
关于Java应用程序图标的提示很棒。我的问题是如何在“前门”可执行文件上添加该图标?需要创建一个仅启动我的.jar文件的.NET可执行文件吗?如何完成这个过程? - gadget00
@gadget00,很遗憾我对.NET的了解非常有限,你可能需要在这方面再搜索一些资料。 - Cyntech

5

要为MAC设置图像,您可以使用com.apple.eawt.Application。尝试以下操作:

Image img = new ImageIcon("abc.png").getImage();  // your desired image  
Application app = Application.getApplication();
app.setDockIconImage(img);

然而,默认情况下,这将无法在Windows或Linux上构建。如果您想要这样做,(Maven)请将以下依赖项添加到您的POM文件中:

<dependency>
    <groupId>com.yuvimasory</groupId>
    <artifactId>orange-extensions</artifactId>
    <version>1.3.0</version>
</dependency>

如果您不使用Maven,您可以从http://central.maven.org/maven2/com/yuvimasory/orange-extensions/1.3.0/orange-extensions-1.3.0.jar下载JAR包。


这段代码在Maven Java Swing Netbean项目中的哪里使用? - Nitin Karale

3
如果使用Java Web Start启动应用程序,则可以指定应用程序图标用于桌面快捷方式和菜单项。
请注意,此图标未直接附加到Jar文件,但由于最终用户从未看到或必须处理Jar文件,因此这不应该是一个问题。

2

我使用NetBeans,如果你没有使用它,我不太清楚。但是,当你选择窗口时,在属性窗口中有一个图标文件选项。当你构建.jar文件时,该图标应该与程序一起构建。


很不幸,我被迫使用Eclipse,因为我正在使用SWT和WindowBuilder插件。 - Islam Hassan
我也使用NetBeans,当我在IDE中创建一个JFrame并查看属性窗口时,我会看到iconImage和iconImages选项。当我点击...时,选项是<none>和<default>。但选择一个图标文件并不像看起来那么简单... :( - simgineer
你必须选择“自定义代码”或类似选项。弹出框将允许您输入Java代码以加载图像文件。 - Azmisov

2
如果您说的是Windows中的实际应用程序图标,那么您无法进行更改(通过编程)。这是由操作系统决定的。虽然您可以在文件夹选项中更改操作系统中的图标。
但是,您可以使用“setIconImage()”设置窗口(即:JFrame)图标图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接