如何在Ubuntu 13.10中为Eclipse创建一个Menu项?

我昨天将Eclipse升级到版本4.3,并且面临缺少菜单错误 。 要获得菜单,必须以不同的方式启动Eclipse,因此我尝试在主菜单中创建一个新项目。

由于某些原因,该项目未被主菜单存储,当我单击新项目对话框中的确定按钮时,我没有收到任何错误消息,但应用程序组中没有任何更改。

难道我做错了什么? 谢谢。

更新I : 用户wilf告诉我在/usr/share/applications添加一个名为eclipse.desktop的文件,但这并没有在主菜单中创建一个新项目:

在此处输入图像描述

更新II :这是我的eclipse.dektop文件的样子:

 $ ls -la /usr/share/applications/e* -rw-r--r-- 1 root root 3083 May 11 2012 /usr/share/applications/easytag.desktop -rw-r--r-- 1 root root 167 Jan 25 17:02 /usr/share/applications/eclipse.desktop -rw-r--r-- 1 root root 921 Oct 31 20:30 /usr/share/applications/empathy.desktop -rw-r--r-- 1 root root 856 Jun 29 2013 /usr/share/applications/eog.desktop -rw-r--r-- 1 root root 894 Oct 8 23:21 /usr/share/applications/evince.desktop -rw-r--r-- 1 root root 873 Oct 8 23:21 /usr/share/applications/evince-previewer.desktop $ cat /usr/share/applications/eclipse.desktop [Desktop Entry] Type=Application Name=Eclipse Icon=eclipse Exec=env UBUNTU_MENUPROXY=/usr/local/eclipse.kepler/eclipse Terminal=false Categories=Development;IDE;Java; 

除此之外,还有其他方法可以让Eclipse图标显示在破折号中吗?

您在问题中写道.desktop文件包含以下内容:

 Exec=env UBUNTU_MENUPROXY=/usr/local/eclipse.kepler/eclipse 

但它应该包含这样的东西:

 Exec=env UBUNTU_MENUPROXY= /usr/local/eclipse.kepler/eclipse 

注意=/之间的空格。 需要取消设置UBUNTU_MENUPROXY变量才能使eclipse正常工作。 您将其设置为eclipse而不是启动任何应用程序。

虽然我不知道这是否解决了你的问题,因为我认为这不会导致图标没有显示,只是点击时它不会做任何事情。


更新:所以上面没有让eclipse出现,这是你可以尝试的另一件事:

将.desktop文件放在~/.local/share/applications/目录中,这是您可以存储每个用户.desktop文件的地方,也许unity会从那里检测到它。 如果是这样,请不要忘记该目录中的.desktop文件仅对.desktop文件所在的主目录中的用户可用,因此如果您有更多用户,只需将.desktop文件复制到每个用户~/.local/share/applications/目录。

另请注意,对于~/.local/share/applications/的桌面文件,需要注销以显示在破折号中。 (我不知道为什么,但它就在我身边。)所以,如果你把.desktop文件放在那里,不要忘记注销/注销。

使用which命令找到可执行文件的路径:

 which eclipse 

创建.desktop文件:

 sudo touch /usr/share/applications/eclipse.desktop 

使用您选择的文本编辑器以root权限打开文件,例如使用nano

 sudo nano /usr/share/applications/eclipse.desktop 

并将以下内容复制到该文件并保存工作: source

 [Desktop Entry] Type=Application Name=Eclipse Icon=eclipse Exec=env UBUNTU_MENUPROXY=path_to_eclipse Terminal=false Categories=Development;IDE;Java; 

(其中path_to_eclipse应该被上面使用的which命令的路径输出替换。或者用eclipse替换path_to_eclipse并创建一个指向which命令指向的可执行文件的符号链接。)例如在你的情况下,因为可执行文件是/usr/share/eclipse.kepler/eclipse .desktop文件如下所示:

 [Desktop Entry] Type=Application Name=Eclipse Icon=eclipse Exec=env UBUNTU_MENUPROXY=/usr/share/eclipse.kepler/eclipse Terminal=false Categories=Development;IDE;Java; 

现在eclipse应该出现在菜单中。


要创建符号链接,请使用:

 sudo ln -s -T source_file target_file 

你应该用eclipse的绝对路径替换source_file ,并将target_file(即/usr/bin的链接)放在:

 sudo ln -s -T path_to_eclipse /usr/bin/eclipse 

我认为你指的是Alacarte 。 出于某种原因,这并不总是保存更改。

我会这样做,但是请记住,即使你没有Eclipse的.desktop文件,这应该为你做:

 sudo nano /usr/share/applications/eclipse.desktop 

在此处输入图像描述

如果您不相信我,这里是属性窗口:

在此处输入图像描述

尝试使用这个方法https://askubuntu.com/a/80016/240859创建启动器激活器(然后你可以随意移动它),但稍微修改~/.local/share/applications/opt_eclipse.desktop它看起来像:

 [Desktop Entry] Type=Application Name=Eclipse Comment=Eclipse Integrated Development Environment Icon= Exec=env UBUNTU_MENUPROXY=0  Terminal=false Categories=Development;IDE;Java; StartupWMClass=Eclipse 

添加env UBUNTU_MENUPROXY=0部分。 不要忘记在Icon和Exec中修改路径。