Я создал файл my-app.desktop для программы, которую я написал. Когда я дважды щелкните по нему, я получаю сообщение об ошибке «Ошибка при запуске приложения». Как я могу получить более подробную информацию о том, что проблема?
Я видел ссылку на раздел «подробности» диалогового окна, но в том, что я вижу, ничего подобного нет. Если бы я был на своем Mac, я бы открыл приложение Console, чтобы узнать, были ли зарегистрированы какие-либо ошибки, но я не узнал ничего подобного на Ubuntu.
(Обратите внимание, что в отличие от других аналогично названных вопросов , Я не спрашиваю, что не так с этим конкретным файлом .desktop, я хочу знать, как узнать вообще.)
Найден ответ на этот вопрос здесь: https://askubuntu.com/a/836842
Попробуйте это:
desktop-file-validate my-app.desktop
Он выводит ошибки в вашем .desktop файл. Например, my return:
error: first group is not "Desktrop Entry"
Итак, как только я исправил опечатку на Desktop Entry, сценарий успешно работал.
Запустив следующую команду в терминале:
awk -F= '/Exec=/{system($2)}' your_desktop_file.desktop
Я уверен, что вы узнаете, есть ли ошибка или нет в вашей команде, назначенной полю Exec изнутри вашего .desktop file.
обычно терминал (-output) дает вам много полезной информации, как на приложении, так и на рабочем столе. Пример: если я запустил приложение из терминала, набрав команду в терминале, приложение запустится.
Однако, если что-то не так, вы можете ожидать выход вроде:
Traceback (most recent call last):
File "/home/jacob/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa /qle-2.1.2/code/qle_quicklisteditor", line 4044, in <module>
MainWindow()
File "/home/jacob/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa /qle-2.1.2/code/qle_quicklisteditor", line 51, in __init__
self.load_sectons()
AttributeError: 'MainWindow' object has no attribute 'load_sectons'
jacob@Jacobwerkkamer:~/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa /qle-2.1.2/code$
, который дает вам много полезной информации, даже строку в приложении, которая вызывает ошибка. (Я испортил это специально)
То же самое с файлом рабочего стола, просто откройте терминал в каталоге файла .desktop и перетащите его на терминал. Если вы, например, удалите строку Exec= из файла .desktop, терминал сообщит вам, что не может найти команду для выполнения.
Чтобы проверить, дает ли приложение ошибку, просто запустите то, что вы положили после строки Exec=.
Выход терминала обычно очень специфичен и полезен в отчетах об ошибках, например здесь .
Это может помочь другим людям - это официальная спецификация файлов запуска рабочего стола
. Важным разделом является: Распознаваемые ключи ввода рабочего стола - это показывает вам, какие значения вам нужны.
Для меня проблема заключалась в отсутствии строки 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
Это не особенно удобно для изменений в пользователе, но что угодно.