Ubuntu – How Can I Run an Shell Script With .desktop Config File

bashcommand linedesktopscriptssh

I am trying to run a shell script with a .desktop file but it doesn't seem to work, producing an error of There was an error launching the application at each attempt. I have the sh and .desktop files set the executable.

.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

The script:

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

All paths are correct.

Methods I Have Tried:

  • 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'

Conspicuously, I have tried many methods. Can anyone assist me with a resolution to this?

Best Answer

Few potential issues:

  1. Your script needs a shebang on its first line... it should look like:

    #!/bin/bash
    /usr/bin/java ...
    
  2. Your script needs to be marked as executable:

    chmod +x /path/to/script.sh
    
  3. Your .desktop file also needs to be executable (security policy stuff apparently):

    chmod +x /path/to/desktop-file.desktop
    
Related Question