为 shell 脚本创建桌面条目时出现问题

为 shell 脚本创建桌面条目时出现问题

我按照以下步骤创建了应用程序启动器,但它不起作用。

  1. shell.sh创建名为以下内​​容的shell脚本:

    java -jar foo.jar
    
  2. 增加执行权限:sudo chmod +x shell.sh
  3. 创建 .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

以下提示可帮助您解决问题:

  1. 替换Exec=/path/shell.shExec=sh /path/shell.shExec=bash /path/shell.sh
  2. 给.desktop文件添加执行权限

    sudo chmod +x /usr/share/application/<your_desktop_file>
    

此外,除非您希望该启动器在整个系统范围内可用(即:对所有用户),否则您可以将 .desktop 文件放在 中~/.local/share/applications。由于该文件夹位于您的主文件夹中,因此您无需sudo创建/编辑该文件。

答案2

请务必检查您是否

  1. 在 shell 文件中使用完整路径,例如,java -jar foo.java你需要替换foo.java/full/path/to/foo.java
  2. 设置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 的桌面条目规范的桌面环境的应用程序启动器。

相关内容