更改了一些名称以使其更加准确。
我有一个可以从终端运行的应用程序。该应用程序位于我的主目录中名为 ZereneStacker 的文件夹中。该应用程序的名称也是 ZereneStacker。现在,我只知道如何从终端运行它,我这样做了。
cd ZereneStacker
./ZereneStacker.bsh
这样它就能正常运行。
我.desktop
在中创建了一个文件/usr/share/applications
并将其命名为zerene.desktop
。我使其可执行。以下是的内容zerene.desktop
:
[Desktop Entry]
Version=1.0
Name=Zerene Focus Stacker
Comment=Focus Stacker
GenericName=Focus Stacker
Exec=./ZereneStacker.bsh
Path=~/ZereneStacker
Terminal=false
Type=Application
Categories=Photography
StartupNotify=true
我从另一个工作文件中窃取了大部分内容.desktop
。当我尝试单击 中的图标时/usr/share/applications
,我收到“启动此应用程序时出错”的消息。由于我知道当我从终端命令行执行上述操作时,它可以正常加载,所以我知道问题出在我所做的操作上,而不是程序上。
抱歉,我试图在原始消息中使用通用的“简化”方式,但现在却适得其反。
答案1
这Path
桌面入口文件的键不执行波浪号扩展或任何其他形式的 shell 扩展。您需要指定一个绝对路径,该路径将被逐字解释,直到下一个换行符,例如:
Path=/home/charlie/ZereneStacker
这可能是您想要的,因为应用程序目录仅位于您的主目录中,而不是每个用户的主目录中。出于同样的原因,将桌面条目文件放入其中可能更有意义,~/.local/share/applications
因为这是用户特定的桌面条目所在的位置(而不是系统范围的位置/usr/share/applications
和/usr/local/share/applications
)。
或者,您可以从 的键中删除Path
调用 shell 的键Exec
,并让其展开波浪符号:
Exec=/bin/sh -c "cd ~/ZereneStacker && exec ./ZereneStacker.bsh"