开发Eclipse插件期间的运行时问题

时间:2008-12-02 06:20:51

标签: java eclipse plugins runtime

现在,我正在尝试创建一个依赖于其他jar的Eclipse插件;因此,我在jar上创建了一个插件库,并将其部署在我的Eclipses插件下。当我通过Eclipse从我的工作环境中启动它时,它运行良好。但是,只要我将它导出到一个jar并已部署到Eclipse中,它就不再起作用,因为它无法找到依赖的jar。发生了什么以及如何解决这个问题?有谁知道吗?请救救我。

4 个答案:

答案 0 :(得分:2)

MANIFEST.MF有一个名为“Dependencies”的标签,其中应该放置当前插件所依赖的插件。 在运行时,您必须将“依赖项”插件放在与您要启动或想要使用的文件夹相同的文件夹中。

当一个插件有它应该使用的jar时,你必须将jar放到“Runtime”类路径条目中,你应该将jar添加到“Build”Binary Build条目。

答案 1 :(得分:1)

此外,与“外部jar”插件关联的plugin.xml是否export the right packages

您是否检查过 this article ,其中描述了将第三方广告罐打包为插件所需的所有步骤?

文章 PDE and 3rdParty Bundles in OSGI Enterprise apps 中描述了其他非常重要的要点,例如:

  • 始终将相关JAR文件放在单独的包中,并在Manifest文件中描述依赖项。不要将这些JAR隐藏在您自己的包中。

  • 如果可能,请使用Import-Package解决依赖关系。

  • 仅导出您的“公开”套餐 - 无内部套餐。

  • 仅使用Require-Bundle来解析您自己的“Universe”中的依赖关系,而不是针对常见的bundle。

  • 始终版本为Require-Bundle,Import-Package und Export-Package Require-Bundle 始终依赖于具有特定名称的捆绑包 Import-Package 不依赖于捆绑包的名称,因此更灵活。当然,与使用Require-Bundle

  • 的单线程相比,查看您的包并决定需要导入或导出的更多工作
  • 如果bundle本身包含bundle中的包并导出它们,那么永远不要将这些包作为导入的包放入Manifest。

  • 在将插件部署为插件之前,请确保重新计算Package-Uses。错误的包 - 导出包的使用条目可以阻止PDE导出您的插件。

答案 2 :(得分:0)

Eclipse外的工作行为是正常的,因为依赖jar在项目的类路径中。

您是否看过部署的插件文件夹?我怀疑,依赖项不包含在插件文件夹中。

答案 3 :(得分:0)

我遇到了类似的问题。我使用插件视图修复了它:

  1. 使用“运行时”选项卡的“类路径”部分添加jar
  2. 使用Overview选项卡中的Organize Manifest Wizard进行所有必需的清单更改
  3. 使用Overview选项卡中的Export Wizard导出已完成的插件。
  4. 注意我正在使用Eclipse 3.3,因此您的milage可能会有所不同。