如何将Eclipse固定到Unity启动器?

如何将我在/opt/目录下“安装”的Eclipse Indigo 3.7固定到任务栏?
我尝试过启动Eclipse并右键选择“保持在启动器中”的选项。但是当我点击该图标时,在关闭Eclipse后,它并没有启动Eclipse。
我已经查看了如何将Eclipse Indigo添加到启动器?,但是没有一个答案适用于我。(Mod注:此主题的答案已合并到本主题中)

我可以直接从/home/USERNAME/eclipse中的可执行文件启动Eclipse。当我这样做时,码头上的Eclipse图标旁边有一个小箭头,所以它知道Eclipse在运行。多么奇怪。 - csilk
1我遇到了同样的错误,我试图在32位的Ubuntu上执行eclipse_64bit。 你下载了64位版本的Eclipse吗?你检查过你的Ubuntu安装吗? - user61448
我认为在Exec部分你不需要/bin/sh这部分。将其移除应该可以正常工作。顺便问一下,你的用户名是什么? - Salem
我在Eclipse 4.5.2和Ubuntu 14.04上也遇到了同样的问题,所以接受的答案有效。 - Gustave
16个回答

适用于11.10及更高版本

首先,创建一个用于Eclipse的.desktop文件:

gedit ~/.local/share/applications/opt_eclipse.desktop

然后,将此内容粘贴到(不要忘记编辑Exec和Icon的值):
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=** something like /opt/eclipse/icon.xpm **
Exec= ** something like /opt/eclipse/eclipse **
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=Eclipse

打开那个文件夹后,使用Nautilus打开它。
nautilus ~/.local/share/applications

如果您想在Dash/启动器之外使用此启动器(例如,作为桌面启动器),您需要通过右键单击文件并选择属性 -> 权限 -> 允许执行来添加执行权限, 或者通过命令行:

chmod +x ~/.local/share/applications/opt_eclipse.desktop

最后将 opt_eclipse.desktop 拖到启动器上。

1有没有必要在用户的主文件夹之外创建.desktop文件呢?正如你所见,这需要使用sudo命令,这可能存在安全隐患;而且,该文件可能会被系统升级或重新安装时删除。这样做有什么好处呢? - Sergey
不,您可以在任何地方创建文件。我建议选择这个位置是因为通常.desktop文件存储在这个文件夹中(因此可以被类似unity、gnome do等应用程序“找到”)。名称不太幸运,因为它与通过软件管理器安装的Eclipse软件包所创建的.desktop文件相同。我会更改它。 - Salem
19~/.local/share/applications 可能是你想要放置它的地方。 - Jorge Castro
“Drop ... to dash” means to remove or eliminate something completely. It implies replacing or substituting the mentioned item with a dash symbol (-) instead. - Catskul
1@Catskul 我指的是启动器。 - Salem
1我还必须在.desktop文件的末尾添加StartupWMClass=eclipse,否则Unity无法检测到实例是否已经运行(因此每次都会尝试重新启动eclipse,并由于工作区上的锁定而失败)。 - alci
如果您想进行全局安装,使用/usr/local/share/applications路径也是可行的。 - detly
@Salem 好的,虽然有点晚了,但你不需要将桌面文件设置为可执行权限。只需保持原样,将其拖到启动器上,它将执行你在 .desktop 文件的 exec 部分中放置的任何内容。 - Marky
@Marky 是的,那是其他人添加的,我让它保留下来是因为它没有任何影响。如果你不添加执行权限,就无法在Nautilus中启动它(双击),也不会显示在“图标”中定义的图标。 - Salem
@alci 对我来说,应该是 StartupWMClass=Eclipse,不要使用小写字母。 - ubuntudroid
1好的。我知道这可能有效。但是,为什么非得这样呢?我只想启动我的应用程序,右键点击出现的启动器图标,让Ubuntu自动修复问题。我向你们伟大的Ubuntu开发者发起挑战,实现这个功能吧! - Mr. Developerdude
对我来说,只有当我直接从Nautilus启动时它才有效。当我将图标拖到启动器上并从那里启动时,它就无法工作。 - user1170330
@LennartRolland 在我将Eclipse文件夹的位置移动后,它才对我出现了故障。在14.04版本中,发布的解决方案可以修复这个问题。 - Steve M
8在2014年,我们真的需要编辑一个10行的文件并运行一些文件权限命令来创建一个应用程序快捷方式吗? - Dan Dascalescu
+1 这个解释太棒了。我用它将 Visual Studio Code 固定到启动器上(StartupWMClass=Code 生效)。 - ashes999
@DanDascalescu 嗯,是的?这就是Linux的工作方式... - Tim
1@Tim:按照这个逻辑,我们应该总是用现金支付,因为这就是金钱的运作方式。 - Dan Dascalescu
@DanDascalescu 主要原因是出于安全考虑 - 我不希望下载的文件自行运行(或类似操作)... - Tim
2@Tim:缺乏简单的用户体验来创建快捷方式与安全有什么关系?Mac OS和Windows都非常擅长让创建快捷方式变得容易。而Ubuntu则不然。 - Dan Dascalescu
如果您已经被告知在启动器中保留Eclipse,那么在/usr/local/share/applications目录下会有一个名为eclipse.desktop的文件(感谢detly)。只需编辑pathexec,您就无需复制/添加/删除/...任何其他内容 :) - BurninLeo
3这个答案已经有5年的历史了,而且在2016年仍然有效。 当然,Ubuntu可以在软件中心升级Eclipse的版本,这样就不必手动安装了,也不会破坏快捷方式生成的过程。 - Dominic Cerisano
就我个人而言,使用16.04版本和Eclipse Mars(比软件中心的版本更新)时,我并没有遇到任何麻烦 - 我只是在打开Eclipse时选择了“添加到Dash”和“锁定到启动器”,然后那个锁定的图标就可以用来启动Eclipse了。我不确定是Unity发生了变化,还是Eclipse本身做了改动... - BeeOnRope
我在Ubuntu 18.04上尝试了这个,但是双击文件时,它显示“Eclipse可执行启动器无法找到其伴随的共享库”!我该如何修复这个错误? - Milan
这适用于20.04版本。 - dario_ramos

对于Ubuntu 11.10、12.04和12.10版本:
如果在~/.local/share/目录下不存在"applications"文件夹,请创建它。
mkdir ~/.local/share/applications

检查您的安装是否将可用的 .desktop 文件留在了 Eclipse 中,并在存在时进行复制。
cp /usr/share/applications/eclipse.desktop ~/.local/share/applications/

如果文件不存在,请使用gnome-desktop-item-edit在您的~/.local/share/applications/文件夹中为Eclipse创建一个.desktop文件,例如:

gnome-desktop-item-edit --create-new ~/.local/share/applications/

在名称中设置为Eclipse,在命令中输入Eclipse的二进制文件路径,如果需要,插入注释,并点击图标选择您想要的Eclipse图标。
完成后按下确定按钮。
复制文件或创建自己的文件后,打开该文件夹位置。
nautilus ~/.local/share/applications/

找到您刚创建的文件,将其拖到启动器中。

enter image description here


26+1 ... 即使只是为了在你的回答中使用一个动态GIF图像! - fossfreedom
真是喜欢这个答案 - Some Noob Student
非常惊人 :-). 做得好! - Rostislav Stribrny
好的老板.. ^^ - Ahmad Azwar Anas
非常有帮助,非常感谢。但是当我点击启动器时,虽然它启动了程序,但在启动器上显示了另一个图标。 - Maroun

11.04

如果user21580的答案不起作用(很好的建议,但我认为当我安装Indigo时它对我没用),你可以尝试在~/.local/share/applications/中添加一个eclipse.desktop文件,并包含以下内容:
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
StartupNotify=true
Icon=<path-to-eclipse-install>/icon.xpm
Name=Eclipse Indigo 3.7
#Exec=env UBUNTU_MENUPROXY=0 <path-to-eclipse-install>/eclipse
Exec=env <path-to-eclipse-install>/eclipse

如果你遇到了错误,可以尝试注释掉当前行并使用Exec行。

参考文献:


谢谢!这个方法对我有效。可惜Ubuntu要把它搞得这么复杂。为什么不直接在启动器上右键点击来选择这种选项呢? - Twisted Pear

让我来向您展示如何创建一个自定义启动器并将其固定到启动器上。
1)首先,安装gnome-panel:
sudo apt-get install --no-install-recommends gnome-panel

2) 要创建一个新的桌面快捷方式,请在终端或使用Alt-F2运行以下命令:
gnome-desktop-item-edit --create-new ~/Desktop

弹出一个窗口,填写您的快捷方式详细信息并点击确定。

enter image description here

您的快捷方式现在将出现在您的桌面上。
然后,将您的新快捷方式从桌面拖到启动器上。
就是这样!

1我认为 `gnome-desktop-item-edit' 需要某个特定的软件包。 - gontadu
@Eshwar 'sudo apt-get install --no-install-recommends gnome-panel' - user92200
1这个不会捕捉到应用程序的图标,而且当拖动到Unity任务栏时,它会为该应用程序生成另一个图标。不是要搞事情,但在OS X或Windows中创建快捷方式的体验要好得多。 - Dan Dascalescu
点击窗口中的春天图标,将其更改为您想要的样式。 - user72056
1在Ubuntu Desktop 16.04 LTS上,对我来说无法工作,使用Eclipse MARs启动时出现错误。 - Ashu
在16.04版本的Eclipse Mars中,我不需要进行任何复杂的操作 - 我只需在Eclipse打开时选择"添加到Dash"和"锁定到启动器",然后那个被锁定的图标就可以用来启动Eclipse了。 - BeeOnRope

如果您从网站上下载了Eclipse而不是从软件仓库安装,可能会导致启动器无法工作。您可以通过编写扩展名为.desktop的文件来解决此问题,在我们的例子中是eclipse.desktop。
 [Desktop Entry]
 Name=Eclipse
 Comment=Eclipse
 Exec=/path/eclipse
 Icon=/path/icon.xpm
 Terminal=false
 Type=Application

在这里 /path 是指你安装 Eclipse 的路径。保存之后,你需要给予执行权限。
$ chmod +x eclipse.desktop

你可以用Nautilus执行它,通过右键单击启动器来锁定到启动器。这样你就可以正确地启动应用程序。

将eclipse.desktop文件拖放到启动器上是最后一个简单的步骤,必须完成。 - Raaghu

我认为这是一个更清晰的版本:
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=eclipse
Exec=eclipse
Terminal=false
Categories=Development;IDE;Java;

你应该将这个添加到`/usr/local/share/applications/eclipse.desktop`并在`/usr/bin`上创建eclipse的符号链接。 如果你的主题没有一个eclipse按钮(例如ambiance/radiance),你可能想要更改图标路径。
如果我没记错的话,这是galileo从仓库中获取的文件(我已经删除了),我一直在使用它与Helios和现在的Indigo版本。

18.04

点击“显示应用程序”,在列表中找到Eclipse,右键单击并添加到收藏夹。

2从技术角度来说,18.04版本中并没有Unity。然而,关于新的默认桌面(GNOME)的说明可能适合在这里发布。 - Melebius
无论在18.04中使用的是什么启动器,它的外观与16.04和14.04中的相同。我并不过分关心它被称为什么。 - Phil

确保在64位机器上使用32位版本时,安装32位库(我认为在Precise中是ia32libs-multiarch包)。
或者,如果您想在32位机器上运行64位的Eclipse,您需要下载32位版本。

尝试

Exec=/bin/bash /home/USERNAME/eclipse/eclipse

或者将/home/USERNAME/eclipse/eclipse设为可执行文件。
sudo chmod u+x /home/USERNAME/eclipse/eclipse

使用:

Exec=/home/USERNAME/eclipse/eclipse

已经可以执行了,你建议将sh改为bash也没有任何区别。 - csilk

对于12.04版本,我更喜欢从软件仓库安装。这种方法对我来说很有效,并且我在这里记录了图形化安装的步骤。
如果你必须安装便携版(从eclipse官网获取tar.gz文件),下面是我找到的最佳方法,可以使其便携并固定在启动器上。
下载eclipse便携版并解压到桌面。在终端中执行以下操作:
sudo apt-get install eclipse-platform
sudo mv Desktop/eclipse /opt/eclipse
/opt/eclipse/eclipse

右键单击启动器栏中的图标并固定到栏中。我可以确认这是可移植的,而不是平台,因为我安装了很多插件,但在以这种方式启动时它们不会出现。
你可能会发现创建一个.desktop文件有效,但如果你安装了多个可移植实例,可能会遇到一些神秘的行为。