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

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

my-app.desktop为自己编写的程序创建了一个文件。双击它时,出现错误消息“启动应用程序时出错“。我怎样才能获得有关问题的更详细信息?

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

(请注意,与其他类似标题的问题不同,我并不是在问这个特定的 .desktop 文件出了什么问题;我想知道如何总体上找出问题所在。)

答案1

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

尝试这个 :

desktop-file-validate my-app.desktop

它会在你的文件中输出错误.desktop。例如,我的返回值为:

error: first group is not "Desktrop Entry"

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

答案2

你可以使用以下技巧。为你的应用程序创建一个包装器脚本,该脚本将启动应用程序并捕获错误输出:

#!/usr/bin/env bash

## Launch 'yourapp' and capture its standard error output
/path/to/yourapp 2>~/myapp.log

将其另存为~/foo.sh,然后使用 使其可执行chmod +x ~/foo.sh。现在,将桌面启动器指向它。例如:

[Desktop Entry]
Version=2.0
Type=Application
Exec=/home/kevin/foo.sh
Terminal=true
Comment=My app!

这会将所有错误消息重定向到~/myapp.log,您可以随意查看它们。2>>~/myapp.log如果您希望将连续的错误消息附加到文件而不是覆盖它,则可以使用。


另外,之所以$PATH不同,是因为您可能在设置$PATH中设置~/.bahsrc了图形环境不读取的文件。这也是一个坏主意,因为$PATH每次打开新终端时都会设置,这是不必要的开销。请改用~/.profile这个。有关读取哪些文件的更多详细信息,请参阅这里有关哪个文件应该用于什么用途的更多信息,请参阅这里

答案3

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

awk -F= '/Exec=/{system($2)}' your_desktop_file.desktop

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

答案4

对我来说,问题在于缺少Icon=一行(对于一个可以工作的启动器来说,这似乎是一个愚蠢的要求)。我的完整 .desktop 文件现在如下所示:

[Desktop Entry]
Name=LiClipse
Comment=Variant of Eclipse
Exec=/home/tsbertalan/bin/liclipse
Terminal=true
Type=Application
Icon=/home/tsbertalan/usr/liclipse/icon.xpm

这对于用户的变化并不是特别强大,但无论如何。

相关内容