我按照以下步骤创建了应用程序启动器,但它不起作用。
shell.sh
创建名为以下内容的shell脚本:java -jar foo.jar
- 增加执行权限:
sudo chmod +x shell.sh
创建 .desktop 文件,
/usr/share/applications/
内容如下:[Desktop Entry] Name=foo Terminal=false Exec=/path/shell.sh Type=Application Icon=/path/icon.png Categories=Utility;
然后我有一个带图标的应用程序,但它无法运行,而双击 shell.sh 可以运行。这是怎么回事?
答案1
以下提示可帮助您解决问题:
- 替换
Exec=/path/shell.sh
为Exec=sh /path/shell.sh
或Exec=bash /path/shell.sh
给.desktop文件添加执行权限
sudo chmod +x /usr/share/application/<your_desktop_file>
此外,除非您希望该启动器在整个系统范围内可用(即:对所有用户),否则您可以将 .desktop 文件放在 中~/.local/share/applications
。由于该文件夹位于您的主文件夹中,因此您无需sudo
创建/编辑该文件。
答案2
请务必检查您是否
- 在 shell 文件中使用完整路径,例如,
java -jar foo.java
你需要替换foo.java
为/full/path/to/foo.java
- 设置
Path
桌面条目的属性,该属性定义脚本的工作目录,即脚本相对于指定的工作目录执行。
如果你选择第二种方式,你的桌面条目将会像这样
[Desktop Entry]
Name=foo
Terminal=false
Exec=/full/path/to/shell.sh
Path=/full/path/to
Type=Application
Icon=/full/path/to/icon.png
Categories=Utility;
答案3
我不知道您的输入有什么问题,但我使用以下应用程序来创建自定义启动器。在 Unity 中也可以使用:
http://linux-apps.com/content/show.php/Desktop+Entry+Editor?content=147818
桌面条目编辑器是一个 GUI 应用程序,用于编辑和创建 GNOME、KDE、XFCE 以及任何其他实现 freedesktop.org 的桌面条目规范的桌面环境的应用程序启动器。