在Linux可执行文件中嵌入图标

22

我用Java编写了一个应用程序,并成功地使用gcj进行了编译。

在(X)ubuntu的文件管理器中,我的应用程序显示为默认的Linux可执行文件图标,我想将其替换为自己的图标。

我发现其他应用程序显示可执行文件的自定义图标,例如 Firefox,但不知道如何解决问题。是否有某种资源编辑器可用于Linux二进制文件?

桌面入口

我尝试创建一个桌面入口文件,如下所示执行应用程序:

[Desktop Entry]
Version=1.0
Type=Application
Name=MyJavaApp
Comment=
Exec=./MyJavaApp
Path=./../../libs/
Terminal=true
Icon=./icon.png
X-KDE-Library=./../../libs/libswt.so

双击它会弹出一个终端窗口并再次消失,就是这样。我相当确定应用程序无法启动,因为它找不到所需的SWT库。我希望能在终端中看到输出结果,但我无法从那里启动它。

此外,Ubuntu似乎没有识别Icon。 我尝试了各种分辨率的PNG图像,但都不行。

3个回答

25

Linux上的可执行文件没有嵌入图标(尝试将文件管理器指向/usr/bin)。您看到的可能是桌面条目。这是一个文本文件,描述了图标、程序名称和可执行文件。


我倾向于将此标记为已接受的答案,因为它无疑是正确的,但由于某种原因,我无法成功地使桌面条目执行应用程序或显示图标。 - Paul Lammertsma
7
“Icon”条目出现故障。要么使用绝对路径,要么不使用路径,让系统图标路径进行搜索。 - Ignacio Vazquez-Abrams
1
桌面条目不支持相对路径让我非常难过。 - ThorSummoner

2

在Ubuntu系统中:

鼠标右键点击您不喜欢的图标 -> 属性 -> 在打开的窗口中点击图标 -> 选择您想要的图标


0

在桌面文件的文件路径中,不能使用 ~ userhome、. 或 ..。 必须从 / 根目录开始提供完整的文件路径。
或者
将所有相关文件路径添加到 $PATH 环境变量中,然后只需在桌面条目中提供文件名,例如:

Exec=MyJavaApp
Icon=MyJavaPic.png

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