Ich habe eine my-app.desktop
Datei für ein Programm erstellt, das ich geschrieben habe. Wenn ich darauf doppelklicke, erhalte ich die Fehlermeldung "Beim Starten der Anwendung ist ein Fehler aufgetreten ". Wie kann ich genauere Informationen zum Problem erhalten?
Ich habe einen Verweis auf einen "Detail" -Abschnitt des Dialogfelds gesehen, aber in dem, den ich sehe, ist nichts Ähnliches vorhanden. Wenn ich auf meinem Mac wäre, würde ich die Konsolen-App öffnen, um festzustellen, ob Fehler protokolliert wurden, aber ich habe noch nichts Ähnliches unter Ubuntu erfahren.
(Beachten Sie, dass ich im Gegensatz zu anderen Fragen mit ähnlichen Titeln nicht frage, was mit dieser bestimmten .desktop-Datei nicht stimmt. Ich möchte wissen, wie ich das im Allgemeinen herausfinden kann.)
PATH
). Ich möchte wissen, wie ich genau die gleiche Umgebung wie bei einem normalen Start erhalten kann, aber mit mehr Diagnoseinformationen.Exec=
Pfad. Denken Sie daran, Sie solltenExec=
in Anführungszeichen undPath=
ohne Anführungszeichen haben.Antworten:
Hier ist ein Trick, den Sie verwenden können. Erstellen Sie ein Wrapper-Skript für Ihre Anwendung, um es zu starten und die Fehlerausgabe zu erfassen:
Speichern Sie das als
~/foo.sh
und machen Sie es ausführbar mitchmod +x ~/foo.sh
. Zeigen Sie stattdessen mit Ihrem Desktop-Launcher darauf. So etwas wie:Dadurch werden alle Fehlermeldungen an umgeleitet
~/myapp.log
und Sie können sie nach Belieben überprüfen. Sie können verwenden,2>>~/myapp.log
wenn aufeinanderfolgende Fehlermeldungen an die Datei angehängt werden sollen, anstatt sie zu überschreiben.Abgesehen davon liegt der Grund dafür, dass das
$PATH
anders ist, darin, dass Sie wahrscheinlich festlegen,$PATH
in~/.bahsrc
welchem Format von der grafischen Umgebung nicht gelesen wird. Es ist auch eine schlechte Idee, da das$PATH
jedes Mal gesetzt wird, wenn Sie ein neues Terminal öffnen, und das ist unnötiger Overhead. Verwenden Sie~/.profile
dafür stattdessen. Weitere Informationen dazu, welche Dateien wann gelesen werden, finden Sie hier und welche Datei für welche Zwecke verwendet werden soll, finden Sie hier .quelle
Hier finden Sie eine Antwort auf diese Frage: https://askubuntu.com/a/836842
Versuche dies :
Es gibt Fehler in Ihrer
.desktop
Datei aus. Zum Beispiel meins zurückgegeben:Nachdem ich den Tippfehler auf korrigiert hatte,
Desktop Entry
wurde das Skript erfolgreich ausgeführt.quelle
Führen Sie im Terminal den folgenden Befehl aus:
Ich bin sicher, dass Sie
Exec
aus Ihrer .desktop-Datei herausfinden werden, ob in Ihrem Befehl, der dem Feld zugewiesen ist, ein Fehler vorliegt oder nicht .quelle
In der Regel enthält das Terminal (-output) viele nützliche Informationen sowohl zur Anwendung als auch zur Desktop-Datei. Ein Beispiel: Wenn ich meine Anwendung über das Terminal ausführe und den Befehl im Terminal eingebe, wird die Anwendung gestartet.
Wenn jedoch etwas nicht stimmt, können Sie eine Ausgabe erwarten wie:
Dadurch erhalten Sie viele nützliche Informationen, auch die Zeile in Ihrer Anwendung, die den Fehler verursacht. (Ich habe es absichtlich vermasselt)
Das Gleiche gilt für die Desktop-Datei. Öffnen Sie einfach ein Terminal im Verzeichnis der .desktop-Datei und ziehen Sie es auf das Terminal. Wenn Sie beispielsweise die
Exec=
Zeile aus einer .desktop-Datei entfernen , werden Sie vom Terminal darauf hingewiesen, dass der auszuführende Befehl nicht gefunden werden kann.Um zu testen, ob die Anwendung einen Fehler ausgibt, führen Sie einfach das aus, was Sie nach der
Exec=
Zeichenfolge eingegeben haben.Die Terminal-Ausgabe ist normalerweise sehr spezifisch und nützlich in Fehlerberichten wie hier .
quelle
Dies könnte anderen helfen - dies ist die offizielle Spezifikation der Desktop Launcher-Dateien
Der wichtige Abschnitt lautet: Erkannte Desktop-Eingabetasten - Hier sehen Sie, welche Werte Sie benötigen.
quelle
Wenn ich es wirklich nicht herausfinden kann, habe ich:
Klicken Sie dann mit der rechten Maustaste auf das erstellte Standardsymbol und zeigen Sie auf eine bessere Grafik.
quelle
Für mich war das Problem eine fehlende
Icon=
Zeile (was für einen funktionierenden Launcher eine blöde Voraussetzung zu sein scheint). Meine vollständige .desktop-Datei sieht jetzt folgendermaßen aus:Welches ist nicht besonders robust gegenüber Änderungen im Benutzer, aber was auch immer.
quelle