我尝试从 dash 菜单运行 IDEA。因此我.desktop
为其创建了文件并将其放入/usr/share/applications
:
$ cat /usr/share/applications/idea.desktop
[Desktop Entry]
Name=IDEA
Comment=IntelliJ IDEA
Exec=/opt/idea/bin/idea.sh
Icon=/opt/idea/bin/idea.png
Terminal=0
Type=Application
Encoding=UTF-8
Categories=Development;IDE;Java;
$ ls -l /usr/share/applications/idea.desktop
-rw-rw-r-- 1 root root 179 Oct 3 11:01 /usr/share/applications/idea.desktop
当我输入idea
dash 时,我可以看到 IDEA 的图标,但是当我单击它时应用程序不会启动。同时,如果我/opt/idea/bin/idea.sh
从控制台运行,它将运行。
如何解决(或调试)这个问题?
答案1
可能你缺少一些环境变量。也许是你的 $PATH 中的一些条目?那么下面如何?创建一个脚本,比如/home/user/testidea.sh
(user
当然,你的实际用户名在哪里),其中包含
/bin/bash #!/bin/bash /opt/idea/bin/idea.sh 2> /tmp/idea.err > /tmp/idea.out
使其可执行
chmod a+x /home/user/testidea.sh
并将文件中的相应行替换idea.desktop
为
exec=/home/user/testidea.sh
也许这样做会有效,但如果没有,至少(希望)您可以通过检查/tmp/idea.err
和发现问题所在/tmp/idea.out
。
答案2
为了开始调试,您可以尝试从命令行运行桌面文件并查看响应。如何覆盖此内容的主题似乎已在这个帖子。可以使用特定的解决方案来尝试gnome-open
查看结果,但显然可能不起作用 :(
要尝试的第二件事是,从桌面或 Nautilus 双击桌面文件是否有效?
最后我找到了这个页面UnityLaunchersAndDesktopFiles其中详细介绍了这一点。特别是,它建议您使用桌面文件验证器检查文件是否有效。