J'ai créé un my-app.desktop
fichier pour un programme que j'ai écrit. Lorsque je double-clique dessus, j'obtiens le message d'erreur " Une erreur s'est produite lors du lancement de l'application ". Comment obtenir des informations plus détaillées sur le problème?
J'ai vu une référence à une section "détails" de la boîte de dialogue, mais il n'y a rien de semblable dans celui que je vois. Si j'étais sur mon Mac, j'ouvrirais l'application Console pour voir si des erreurs étaient enregistrées, mais je n'ai rien appris de similaire sur Ubuntu.
(Notez que contrairement à d'autres questions de même nom, je ne demande pas ce qui ne va pas avec ce fichier .desktop particulier; je veux savoir comment le découvrir en général.)
PATH
). Je veux savoir comment obtenir exactement le même environnement qu'un lancement normal mais avec plus d'informations de diagnostic.Exec=
chemin. N'oubliez pas, vous devriez avoirExec=
entre guillemets etPath=
sans guillemets.Réponses:
Voici une astuce que vous pouvez utiliser. Créez un script wrapper pour votre application qui le lancera et capturera la sortie d'erreur:
Enregistrez-le sous
~/foo.sh
et rendez-le exécutable avecchmod +x ~/foo.sh
. Maintenant, dirigez votre lanceur de bureau vers lui à la place. Quelque chose comme:Cela redirigera tous les messages d'erreur vers
~/myapp.log
et vous pourrez les examiner à votre guise. Vous pouvez utiliser2>>~/myapp.log
si vous souhaitez que des messages d'erreur successifs soient ajoutés au fichier au lieu de l'écraser.En passant, la raison pour laquelle le
$PATH
est différent est parce que vous définissez probablement votre$PATH
dans~/.bahsrc
lequel n'est pas lu par l'environnement graphique. C'est aussi une mauvaise idée car le$PATH
sera défini à chaque fois que vous ouvrirez un nouveau terminal et cela est inutile. Utilisez-le~/.profile
à la place. Pour plus de détails sur quels fichiers sont lus quand voir ici et pour plus sur quel fichier doit être utilisé pour quoi, voir ici .la source
Trouvé une réponse à cette question ici: /ubuntu//a/836842
Essaye ça :
Il génère des erreurs dans votre
.desktop
fichier. Par exemple, le mien est revenu:Donc une fois que j'ai corrigé la faute de frappe
Desktop Entry
, le script s'est exécuté avec succès.la source
En exécutant la commande suivante dans le terminal:
Je suis sûr que vous saurez s'il y a une erreur ou non dans votre commande affectée au
Exec
champ depuis l'intérieur de votre fichier .desktop.la source
généralement, le terminal (-output) vous donne beaucoup d'informations utiles, à la fois sur l'application et sur le fichier de bureau. Un exemple: si j'exécute mon application à partir du terminal, en tapant la commande dans le terminal, l'application démarre.
Cependant, s'il y a quelque chose qui ne va pas, vous pouvez vous attendre à une sortie comme:
ce qui vous donne beaucoup d'informations utiles, même la ligne de votre application qui provoque l'erreur. (Je l'ai foiré exprès)
La même chose avec le fichier de bureau, ouvrez simplement un terminal dans le répertoire du fichier .desktop et faites-le glisser sur le terminal. Si vous supprimez par exemple la
Exec=
ligne d'un fichier .desktop, le terminal vous indiquera qu'il ne trouve pas la commande à exécuter.Pour tester si l'application donne une erreur, exécutez simplement ce que vous mettez après la
Exec=
chaîne.La sortie du terminal est généralement très spécifique et utile dans les rapports de bogues, comme ici .
la source
Cela pourrait aider d'autres personnes - c'est la spécification officielle des fichiers du lanceur de bureau
La section importante est la suivante: Clés d'entrée de bureau reconnues - qui vous indiquent les valeurs dont vous avez besoin.
la source
Quand je ne peux vraiment pas le comprendre, je:
Cliquez ensuite avec le bouton droit sur l'icône par défaut créée et pointez sur un meilleur graphique.
la source
Pour moi, le problème était une
Icon=
ligne manquante (ce qui semble être une exigence stupide pour un lanceur fonctionnel). Mon fichier .desktop complet ressemble maintenant à:Ce qui n'est pas particulièrement robuste aux changements d'utilisateur, mais peu importe.
la source