it-swarm.com.de

Wie kann ich ein Shell-Skript mit der .desktop-Konfigurationsdatei ausführen?

Ich versuche, ein Shell-Skript mit einer .desktop -Datei auszuführen, aber es scheint nicht zu funktionieren. Bei jedem Versuch wird der Fehler There was an error launching the application ausgegeben. Ich habe die sh- und .desktop-Dateien auf die ausführbare Datei gesetzt.

.desktop file:

[Desktop Entry]
Name=Craftbukkit Server
Comment=run server
Exec="/home/ubuntu-gnome/Documents/Craftbukkit/run.sh"
Icon=/home/ubuntu-gnome/Documents/Craftbukkit/craftbukkit.png
Terminal=true
Type=Application

Das Drehbuch:

#!/bin/bash
/usr/bin/Java -Xmx1024M -Xms1024M -jar /home/ubuntu-gnome/Documents/Craftbukkit/craftbukkit.jar -o false

Alle Pfade sind korrekt.

Methoden, die ich ausprobiert habe:

  • Exec="/home/ubuntu-gnome/Documents/Craftbukkit/run.sh"
  • Exec='/home/ubuntu-gnome/Documents/Craftbukkit/run.sh'
  • Exec=/home/ubuntu-gnome/Documents/Craftbukkit/run
  • Exec="/home/ubuntu-gnome/Documents/Craftbukkit/run.sh"
  • Exec=gnome-terminal -e "/home/ubuntu-gnome/Documents/Craftbukkit/run.sh"
  • Exec=bash -c 'cd /home/ubuntu-gnome/Documents/Craftbukkit/ && ./run.sh'

Auffällig habe ich viele Methoden ausprobiert. Kann mir jemand bei einer Lösung dazu behilflich sein?

2
user271219

Vielen Dank an alle für die Hilfe. Ich stellte fest, dass etwas mit meiner .desktop -Datei nicht stimmte. Mir ist aufgefallen, dass sich die Eigenschaften der .desktop-Datei von denen der anderen .desktop-Dateien in /usr/share/applications unterscheiden, da in meiner Datei keine Textbereiche für Beschreibung, Befehl oder Kommentar vorhanden sind.

Ich habe die .desktop-Datei von Color Picker auf dem Desktop gespeichert und meine Informationen in ersetzt, sodass sie funktionieren.

Dies ist, was die Eigenschaften-> Basic der .desktop-Datei ist.

properties

Das Drehbuch

[Desktop Entry] 
Name=Minecraft-Server Comment=Run the Minecraft
Craftbukkit Server
Icon=/home/ubuntu-gnome/Documents/Craftbukkit/craftbukkit.png
Exec='/home/ubuntu-gnome/Documents/Craftbukkit/run.sh' 
Terminal=true
Type=Application 
Categories=Minecraft;Server;CraftBukkit;
0
user271219

Einige mögliche Probleme:

  1. Ihr Skript benötigt einen Shebang in der ersten Zeile ... es sollte so aussehen:

    #!/bin/bash
    /usr/bin/Java ...
    
  2. Ihr Skript muss als ausführbar markiert sein:

    chmod +x /path/to/script.sh
    
  3. Ihre .desktop -Datei muss auch ausführbar sein ( Sicherheitsrichtlinien anscheinend ):

    chmod +x /path/to/desktop-file.desktop
    
2
Oli

Folgendes würde ich zum Erstellen der ".desktop" -Datei verwenden:

#!/usr/bin/env xdg-open    
[Desktop Entry]
Version=1.0
Type=Application
Name=MY APPLICATION NAME
Comment=THINGS I HAVE TO SAY ABOUT THE APPLICATION
Exec=sh -c "cd /PATH_TO_SH_FILE_FOLDER; FILENAME.sh"
Categories=ENGINERRING;GRAPHICS;ETC
Icon=/PATH_TO_ICON_IMAGE_FILE

Ändern Sie oben die Teile des Codes, die nur aus Groß- und Kleinschreibung bestehen, so, dass sie in Ihren Kontext passen (der nicht nur aus Groß- und Kleinschreibung bestehen muss). Sie können Terminal = true hinzufügen, wenn Sie das Terminalfenster sehen möchten.

Geändert von einer Antwort, die ich hier auf eine verwandte Frage gegeben habe: Link zu .exe startet Wine nicht

2
Ronald Chua

Versuchen Sie, in diesen Skripten immer abolute Pfade zu verwenden. Finden Sie heraus, welchen Pfad die ausführbare Datei Java hat:

which Java

Dann benutze das als Pfad in deinem Skript:

/path/to/Java -Xmx1024M -Xms1024M -jar /path/to/craftbukkit.jar -o false

Beachten Sie, dass Sie auch den vollständigen Pfad zu craftbukkit.jar angeben sollten.

0
chaos