J'ai créé un fichier my-app.desktop
pour un programme que j'ai écrit. Lorsque je double-clique dessus, je reçois le message d'erreur "ne erreur s'est produite lors du lancement de l'application". Comment puis-je 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 tel dans celle que je vois. Si j'étais sur mon Mac, j'ouvrirais l'application console pour voir si des erreurs étaient consignées, mais je n'ai rien appris de semblable sur Ubuntu.
(Notez que contrairement à d'autres questions portant le même titre, je ne demande pas ce qui ne va pas avec ce fichier .desktop en particulier; je veux savoir comment le savoir en général.)
Voici une astuce que vous pouvez utiliser. Créez un script de wrapper pour votre application qui le lancera et capturera le résultat d'erreur:
#!/usr/bin/env bash
## Launch 'yourapp' and capture its standard error output
/path/to/yourapp 2>~/myapp.log
Enregistrez cela sous ~/foo.sh
et rendez-le exécutable avec chmod +x ~/foo.sh
. Maintenant, pointez votre lanceur de bureau dessus. Quelque chose comme:
[Desktop Entry]
Version=2.0
Type=Application
Exec=/home/kevin/foo.sh
Terminal=true
Comment=My app!
Cela redirigera tous les messages d'erreur vers ~/myapp.log
et vous pourrez les examiner à votre guise. Vous pouvez utiliser 2>>~/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 $PATH
est différent est parce que vous définissez probablement votre $PATH
dans ~/.bahsrc
qui n'est pas lu par l'environnement graphique. C'est également une mauvaise idée car le $PATH
sera défini à chaque fois que vous ouvrez un nouveau terminal, ce qui représente une surcharge inutile. Utilisez ~/.profile
pour cela à la place. Pour plus de détails sur les fichiers lus quand voir ici et pour en savoir plus sur le fichier à utiliser pour quoi, voir ici .
Vous avez trouvé une réponse à cette question ici: https://askubuntu.com/a/836842
Essaye ça :
desktop-file-validate my-app.desktop
Il génère des erreurs dans votre fichier .desktop
. Par exemple le mien est retourné:
error: first group is not "Desktrop Entry"
Donc, une fois que j'ai corrigé la faute de frappe en Desktop Entry
, le script a été exécuté avec succès.
En exécutant la commande suivante dans le terminal:
awk -F= '/Exec=/{system($2)}' your_desktop_file.desktop
Je suis sûr que vous saurez s'il y a une erreur ou non dans votre commande affectée au champ Exec
à l'intérieur de votre fichier .desktop.
généralement, le terminal (-output) vous fournit de nombreuses 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:
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$
ce qui vous donne beaucoup d'informations utiles, même la ligne dans votre application qui provoque l'erreur. (Je l'ai foiré exprès)
De même avec le fichier desktop, ouvrez simplement un terminal dans le répertoire du fichier .desktop et faites-le glisser sur le terminal. Si, par exemple, vous supprimez la ligne Exec=
d'un fichier .desktop, le terminal vous indiquera qu'il ne trouve pas la commande à exécuter.
Pour vérifier si l'application génère une erreur, exécutez ce que vous avez mis après la chaîne Exec=
.
La sortie du terminal est généralement très spécifique et utile dans les rapports de bugs, comme here .
Quand je ne peux vraiment pas comprendre, je:
cd ~/Desktop
ln -s /my/binary/thatIwanttorun mybinary
Cliquez ensuite avec le bouton droit sur l'icône par défaut créée et pointez vers un meilleur graphique.
Cela pourrait aider d’autres personnes - c’est le spécifications officielles des fichiers du programme de lancement du burea
La section la plus importante est: Les clés d’entrée de bureau reconnues - qui vous indiquent les valeurs dont vous avez besoin.