我正在尝试为一个程序(unigine heaven)创建一个应用程序启动器,我创建了一个如下所示的.desktop 文件:
[Desktop Entry]
Version=1.0
Name=Unigine Heaven 4.0
Type=Application
Icon=heaven-icon.png
Exec=/home/**redacted**/Unigine_Heaven-4.0/heaven
Terminal=true
我已将文件设为可执行文件,并尝试运行它,但什么也没发生。如果我进入终端内部/home/**redacted**/Unigine_Heaven-4.0/
并运行./heaven
,一切都会正常进行,我只是无法让该终端命令在 .desktop 文件中运行。有什么想法吗?
编辑:格式化以提高清晰度
答案1
如果我们检查可执行脚本,heaven
我们会看到里面的路径是相对的:
#!/bin/bash
cd ./bin
ARCH=$(uname -m)
if [ "$ARCH" == x86_64 ]; then
export LD_LIBRARY_PATH=./x64:$LD_LIBRARY_PATH
./browser_x64 -config ../data/launcher/launcher.xml
else
export LD_LIBRARY_PATH=./x86:$LD_LIBRARY_PATH
./browser_x86 -config ../data/launcher/launcher.xml
fi
因此解决方案是将工作目录(Path
键)添加到启动器(文件.desktop
):
[Desktop Entry]
Version=1.0
Name=Unigine Heaven 4.0
Type=Application
Icon=heaven-icon.png
Path=/home/<user>/Unigine_Heaven-4.0
Exec=/home/<user>/Unigine_Heaven-4.0/heaven
Terminal=false
- 替换
/home/<user>/Unigine_Heaven-4.0
为实际使用的路径。 还请注意这一变化:
Terminal=false
。这@Sans 提供的解决方案也有效:
Exec=sh -c "cd /home/<user>/Unigine_Heaven-4.0/heaven; ./heaven"
参考: