我有一个用于 bash 脚本的 .desktop 文件,但是当我启动 .desktop 文件时,除了显示半秒钟的终端窗口外,什么也没有发生。
如果我直接运行 bash 脚本(不带 .desktop 文件),脚本可以正常工作(bash 文件名为“minecraft”):
#!/bin/bash
java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame
该文件是可执行的。
这是我的 minecraft.desktop 文件:
[Desktop Entry]
Type=Application
Name=Minecraft
Comment=Minecraft
Icon=/home/bram/Applications/Minecraft/icon.png
Exec=/home/bram/Applications/Minecraft/minecraft
Terminal=true
Categories=Minecraft;game
minecraft.desktop 位于 ~/.local/share/applications
答案1
显然脚本找不到 .jar 文件。当我使用 .desktop 文件运行 bash 文件时,我假设它在 .desktop 文件目录 (~/.local/share/applications) 中运行 bash 文件。
当我为 jar 提供完整路径名时,它可以正常工作:
#!/bin/bash
java -Xmx1024M -Xms512M -cp /home/bram/Applications/Minecraft/minecraft.jar net.minecraft.LauncherFrame
答案2
您有两个选择:
1.) 将 .desktop 文件中的工作目录设置为 .jar 的位置
2.)在 Bash 脚本中使用完整路径(就像你做的那样)
答案3
您可以将其作为后台任务运行:
#!/bin/bash
nohup java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame
(注意nohup
开头的 用于使继续运行)