.desktop 文件运行 sh 脚本“启动应用程序时出错。”

.desktop 文件运行 sh 脚本“启动应用程序时出错。”

我有一个 .desktop 文件:

[Desktop Entry]
Type=Application
Terminal=true
Name=RunMe
Exec=run.sh

当我双击 .desktop 文件时,我得到There was an error launching the application.

我的run.sh是:

#!/bin/sh
xulrunner-sdk/bin/xulrunner-stub --app xulrunner-sdk/bin/application.ini 2>~log.log

双击run.sh并单击run即可正常运行应用程序。run.sh和 my.desktop都是可执行文件。

我需要在桌面文件中做哪些更改才能使其正常工作?

答案1

要弄清楚你问的错误到底是什么

我需要在桌面文件中做哪些更改才能使其正常工作?

经过大量研究,我发现你确实可以用这个命令来验证你的桌面文件

desktop-file-validate your-file-here.desktop

这是我几个小时以来一直在尝试寻找的隐藏命令。这拯救了我的一天 :-)

此命令将显示您在出错之处出现的警告和错误。致谢:ubuntu论坛

答案2

%k是桌面文件路径,与sh相对 .desktop 一起使用:

  • 更改当前工作目录(pwd),然后run.sh所有里面的命令都将从那里运行:

    [Desktop Entry]
    Type=Application
    Terminal=true
    Name=Run Me
    Exec=sh -c "cd `dirname %k`; run.sh"
    
  • 否则,将其作为参数传递给run.sh并在需要时明确使用它run.sh

    run.desktop

        [Desktop Entry]
        Type=Application
        Terminal=true
        Name=Run Me
        Exec=sh -c "`dirname %k`/run.sh `dirname %k`"
    

    run.sh

        #!/bin/sh
        $1/xulrunner-sdk/bin/xulrunner-stub --app $1/xulrunner-sdk/bin/application.ini 2>$1/~log.log
    

参考:如何将 .desktop 文件中的“Path”变量设置为相对于桌面文件所在的位置?

答案3

  • 转到 /usr/share/app-install/desktop
  • 右键单击您的特定应用程序
  • 转到属性
  • 复制命令部分
  • 从终端执行相同操作

答案4

  1. 如果尚未放入,请将您的脚本(原始脚本)放入 PATH 中的 bin 目录中。
  2. 重命名脚本并删除扩展名,例如,run1
  3. 编辑您的 .desktop 以反映新名称,例如Exec=run1

相关内容