如何诊断“启动应用程序时出错”?

Kev*_*eid 29 launcher .desktop

my-app.desktop为我编写的程序创建了一个文件。当我双击它时,我收到错误消息“启动应用程序时出错”。如何获得有关问题所在的更多详细信息?

我看到了对对话框“详细信息”部分的引用,但在我看到的内容中没有类似的内容。如果我在我的 Mac 上,我会打开控制台应用程序以查看是否记录了任何错误,但我没有在 Ubuntu 上了解任何类似的内容。

(请注意,与其他类似标题的问题不同,我不是在问这个特定的 .desktop 文件有什么问题;我想知道如何找出一般情况。)

Jim*_*mmy 25

在这里找到了这个问题的答案:https : //askubuntu.com/a/836842

尝试这个 :

desktop-file-validate my-app.desktop
Run Code Online (Sandbox Code Playgroud)

它在您的.desktop文件中输出错误。例如我的返回:

error: first group is not "Desktrop Entry"
Run Code Online (Sandbox Code Playgroud)

因此,一旦我将拼写错误更正为Desktop Entry,脚本就成功运行了。


ter*_*don 16

这是您可以使用的技巧。为您的应用程序创建一个包装脚本,以启动它并捕获错误输出:

#!/usr/bin/env bash

## Launch 'yourapp' and capture its standard error output
/path/to/yourapp 2>~/myapp.log
Run Code Online (Sandbox Code Playgroud)

将其另存为 ~/foo.sh并使用chmod +x ~/foo.sh. 现在,将您的桌面启动器指向它。就像是:

[Desktop Entry]
Version=2.0
Type=Application
Exec=/home/kevin/foo.sh
Terminal=true
Comment=My app!
Run Code Online (Sandbox Code Playgroud)

这会将任何错误消息重定向到 ~/myapp.log,您可以在闲暇时检查它们。您可以使用2>>~/myapp.log,如果你想连续的错误信息被附加到文件,而不是覆盖它。


顺便说一句,那原因$PATH是不同的,因为你可能在你的设置$PATH~/.bahsrc未通过图形环境读取。这也是一个坏主意,因为$PATH每次打开新终端时都会设置,这是不必要的开销。使用~/.profile这种替代。有关在查看此处时读取哪些文件的更多详细信息以及有关应将哪个文件用于哪些内容的更多信息,请参见此处


Rad*_*anu 11

通过在终端中运行以下命令:

awk -F= '/Exec=/{system($2)}' your_desktop_file.desktop
Run Code Online (Sandbox Code Playgroud)

我相信您会Exec从 .desktop 文件内部发现分配给该字段的命令中是否存在错误。

  • 我有类似的问题。我执行您的命令并且 my.desktop 文件完美运行。但是当我双击它时,它显示启动应用程序时出错 (5认同)