![为什么我的命令行无法在启动器(菜单或桌面)中运行?](https://linux22.com/image/1062076/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%97%A0%E6%B3%95%E5%9C%A8%E5%90%AF%E5%8A%A8%E5%99%A8%EF%BC%88%E8%8F%9C%E5%8D%95%E6%88%96%E6%A1%8C%E9%9D%A2%EF%BC%89%E4%B8%AD%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我正在使用 Ubuntu Mate 16.04.3。我安装了一个 Java 应用程序,该应用程序可以从命令行正确启动cd "~/Downloads/Wild Card Creator 1-6-2/" && "./WildCardCreator.sh"
- - 这很好。
但是,我希望能够通过单击一两下来启动此应用程序,因此我尝试创建一个 Mate 启动器。我按照流程操作,将上面的命令行粘贴到启动器的“命令”字段中,适当填写“名称”和“注释”字段,使用应用程序 tarball 中提供的图像设置图标,确保下拉菜单设置为“应用程序”——当我单击启动器时,我什么也得不到(如果我在主菜单中创建了它)或只显示“启动应用程序时出错”的消息框(如果我在桌面上创建了它)。如果我将启动器设置为“终端中的应用程序”,我会得到完全相同的结果——没有打开终端,但我收到相同的错误。
即使我将java -jar "libs/Wild Card Creator-1.6.2.jar"
WildCardCreator.sh 中的命令复制到启动器的命令行中cd
,我也会收到相同的无信息错误 - 但是,如果我将其粘贴到终端中,它也能正常工作。
这似乎很简单——启动器应该能够合理地运行我在终端中输入的任何命令。我做错了什么?
答案1
我找到了解决这个问题的方法。
首先,我修改了要启动的(一行)文件。我将cd
确保 .jar 文件在其自己的文件夹中执行所需的命令添加到该文件中,而不是尝试将其放在启动器的命令字段中。这使我要启动的文件如下所示:
cd "/home/[user]/Downloads/Wild Card Creator 1-6-2/"
java -jar "libs/Wild Card Creator-1.6.2.jar"
在验证从终端启动时仍会运行目标程序后,我能够简化启动器,消除复合命令。~
然而,我发现我仍然必须手动扩展,所以我最终得到了实际的启动器命令:
"/home/[user]/Downloads/Wild Card Creator 1-6-2/WildCardCreator.sh"
现在只需单击一下即可成功启动该程序(我已将桌面设置为单击即可启动)。