Eclipse RCP:命令的键绑定有效,但快捷方式未显示在菜单中

Eclipse RCP: Key binding for commands work, but shortcuts are not shown in menu

注意:我不认为这是 Eclipse Editor plug-in key binding not shown in menu for command!

的重复

我有一个基于 Mars (4.5) 的 Eclipse RCP 应用程序,它不使用任何 e4 功能。我已经定义了我自己的键方案,以及 plugin.xml 中命令的一些键绑定。它们工作正常,当我从 IDE 启动我的应用程序时,菜单条目显示 快捷方式文本 (例如,CTRL + Q)实际的命令文本,例如

Quit CTRL+Q

但是,当我构建我的产品(包括 plugin_customizations.ini)并 运行 它时,键绑定仍然有效,但实际的快捷方式文本是不再显示在菜单中。

我该如何解决这个问题,以便文本再次显示在产品版本中?

编辑:这是在 Ubuntu 14.04 (Unity) 上。

从IDE开始,显示快捷方式文本:

从构建的产品开始,相同的系统:

这是 Ubuntu 中已知错误的问题(参见 related Eclipse bug report, discussion on ubuntuforums.org)。

要解决此问题,请通过将 UBUNTU_MENUPROXY 环境变量设置为 0 来启动应用程序。这会强制应用程序使用应用程序内的菜单栏 window 而不是 (cursed!cursed!cursed!) Unity 全局菜单。

不幸的是,似乎还没有办法在启动时设置环境变量(通过启动器参数或<application>.ini),但是有两个错误(this one and this one)要求这样做,所以如果您也需要这个,请给他们投票或尝试实施此...

同时,您可以在构建中包含自定义 shell 脚本,用户可以选择使用该脚本来启动应用程序。这个脚本非常简单:

#/bin/bash
UBUNTU_MENUPROXY=0 ./{your-application-launcher}

如果您有基于功能的产品,您还可以在为 Linux 构建的产品的构建中包含此脚本。为此,将脚本添加到主要功能的根路径,并将以下行添加到功能的 build.properties.

root.linux.gtk.x86.permissions.755=launcher-unity.sh
root.linux.gtk.x86_64.permissions.755=launcher-unity.sh
root.linux.gtk.x86=file:launcher-unity.sh
root.linux.gtk.x86_64=file:launcher-unity.sh