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

Kik*_*ksy 7 command-line .desktop

我有一个 .desktop 文件:

[Desktop Entry]
Type=Application
Terminal=true
Name=RunMe
Exec=run.sh
Run Code Online (Sandbox Code Playgroud)

当我双击 .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 Code Online (Sandbox Code Playgroud)

双击run.sh并单击run可以正常运行应用程序。无论run.sh.desktop是可执行的。

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

swa*_*ntu 7

弄清楚你问的错误究竟是什么

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

经过大量研究,我发现您确实可以使用此命令验证桌面文件

desktop-file-validate your-file-here.desktop
Run Code Online (Sandbox Code Playgroud)

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

这个命令会在你出错的地方显示警告和错误。学分:ubuntuforums


use*_*.dz 2

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

  • 更改当前工作目录 ( pwd),然后run.shall 中的命令将从那里运行:

    [Desktop Entry]
    Type=Application
    Terminal=true
    Name=Run Me
    Exec=sh -c "cd `dirname %k`; run.sh"
    
    Run Code Online (Sandbox Code Playgroud)
  • 否则,将其作为参数传递给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 Code Online (Sandbox Code Playgroud)

    run.sh

        #!/bin/sh
        $1/xulrunner-sdk/bin/xulrunner-stub --app $1/xulrunner-sdk/bin/application.ini 2>$1/~log.log
    
    Run Code Online (Sandbox Code Playgroud)

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