如何使用 .desktop 配置文件运行 Shell 脚本?

如何使用 .desktop 配置文件运行 Shell 脚本?

我正在尝试使用文件运行 shell 脚本.desktop,但似乎不起作用,There was an error launching the application每次尝试都会产生错误。我已将 sh 和 .desktop 文件设置为可执行文件。

.桌面文件:

[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

剧本:

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

所有路径均正确。

我尝试过的方法:

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

显然,我尝试了很多方法。有人能帮助我解决这个问题吗?

答案1

一些潜在问题:

  1. 你的脚本在第一行需要一个shebang...它应该看起来像:

    #!/bin/bash
    /usr/bin/java ...
    
  2. 您的脚本需要标记为可执行:

    chmod +x /path/to/script.sh
    
  3. 您的.desktop文件需要可执行(显然是安全政策方面的东西):

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

答案2

这是我用来创建“.desktop”文件的内容:

#!/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

对于上述内容,请更改代码的全大写部分以适合您的上下文(不必全大写)。Terminal = true如果您想查看终端窗口,可以添加。

根据我在这里对相关问题的回答进行修改:链接到 .exe 无法启动 Wine

答案3

尝试在这些脚本中始终使用绝对路径。使用以下命令找出 java 可执行文件的路径:

which java

然后使用它作为脚本中的路径:

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

请注意,您还应该提供完整路径craftbukkit.jar

答案4

感谢大家的帮助。我意识到我的.desktop文件出了问题。我注意到 .desktop 文件的属性与 中的其他 .desktop 文件的属性不同/usr/share/applications,其中没有描述、命令或注释文本区域。

我将 Color Picker 的 .desktop 文件保存到桌面,并替换了我的信息,这样它就可以工作了。

这就是 .desktop 文件的属性->基本内容。

特性

剧本

[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;

相关内容