我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
这对于用户的变化并不是特别强大,但无论如何。