如何将Eclipse RCP插件JAR转换为插件目录,反之亦然?

时间:2012-07-06 12:49:46

标签: java eclipse eclipse-plugin eclipse-rcp rcp

我所拥有的是RCP应用程序,其中包含一个插件目录:

my-rcp-app/
  ...
  plugins/
    ...
    com.mycompany.myproduct.ui_1.0.1/
      com/
      META-INF/
      plugin.xml

然后我使用与插件目录com.mycompany.myproduct.ui_1.0.1.jar相同的内容创建一个JAR,并将其放入plugins/而不是com.mycompany.myproduct.ui_1.0.1文件夹。

令人惊讶的是,应用程序无法启动。那来自日志:

 !SUBENTRY 2 com.mycompany.root.bundle 2 0 2012-07-05 20:01:17.511
 !MESSAGE Missing required bundle com.mycompany.myproduct.ui_1.0.1.

所以,这里有2个问题:

  1. 如果我有一个包含类,配置等的目录,如何在JAR中部署插件。
  2. 是否足以将JAR解压缩到插件中,以便应用继续工作?

2 个答案:

答案 0 :(得分:3)

  1. 从清单编辑器的主页面中,您可以打开导出向导。它将创建一个包含插件的jar文件。如果要指定应导出哪些文件,请转到Manifest Editor中的build选项卡。

  2. 如果您的插件已解压缩或在Jar文件中,则无关紧要。 Equinox能够处理这两种情况。请注意,如果您不想通过Eclipse Update Site机制管理插件,建议使用dropins文件夹而不是plugins文件夹。

答案 1 :(得分:1)

正如@TobiasWillig已经注意到的,插件目录和JAR确实可以完全互换。

但在这种特殊情况下,我必须编辑configuration/org.eclipse.equinox.simpleconfigurator/bundles.info文件,替换

com.mycompany.myproduct.ui,1.0.1,plugins/com.mycompany.myproduct.ui_1.0.1/,4,false

使用

com.mycompany.myproduct.ui,1.0.1,plugins/com.mycompany.myproduct.ui_1.0.1.jar,4,false

即,需要手动指定插件的路径。