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

Java 开发Eclipse插件期间的运行时问题,java,eclipse,plugins,runtime,Java,Eclipse,Plugins,Runtime,现在,我正在尝试创建一个依赖于其他jar的Eclipse插件;因此,我在jar上创建了一个插件,并将其部署在Eclipses的插件文件夹下。当我通过Eclipse从工作环境启动它时,它工作得很好。然而,一旦我将它导出到jar并部署到Eclipse中,它就不再工作了,因为它无法找到依赖的jar。发生了什么,如何解决这个问题?有人知道吗?请救我。Eclipse之外的工作行为是正常的,因为依赖jar位于项目的类路径中 你看过你部署的插件文件夹了吗?我怀疑依赖项不包含在插件文件夹中。MANIFEST.M

现在,我正在尝试创建一个依赖于其他jar的Eclipse插件;因此,我在jar上创建了一个插件,并将其部署在Eclipses的插件文件夹下。当我通过Eclipse从工作环境启动它时,它工作得很好。然而,一旦我将它导出到jar并部署到Eclipse中,它就不再工作了,因为它无法找到依赖的jar。发生了什么,如何解决这个问题?有人知道吗?请救我。

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


你看过你部署的插件文件夹了吗?我怀疑依赖项不包含在插件文件夹中。

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


当一个插件有它应该使用的jar时,您必须将jar放在“运行时”类路径条目中,并且您应该将jar添加到“构建”二进制构建条目中。

另外,与“外部jar”插件关联的plugin.xml是否也会这样做

您是否检查了描述将第三方JAR打包为插件所需的所有步骤

文章中描述了其他非常重要的要点,包括:

  • 始终将依赖JAR文件放在单独的包中,并在清单文件中描述依赖关系。不要把那些罐子藏在你自己的包里

  • 如果可能,请使用导入包解决依赖关系

  • 仅导出“公共”包-不导出内部包

  • 仅使用Require Bundle解决您自己的“世界”内的依赖关系,而不是针对普通Bundle

  • 始终需要版本包、导入包和导出包。
    需要捆绑包始终依赖于具有特定名称的捆绑包。
    导入软件包不依赖于捆绑包的名称,因此它更灵活。当然,与带有Require捆绑包的单行程序相比,查看您的软件包并决定需要导入或导出哪个软件包需要做更多的工作

  • 如果捆绑包本身包含捆绑包内的包并将其导出,则切勿将这些包也作为导入的包放入清单中

  • 在将捆绑包部署为插件之前,请确保重新计算包使用。导出包的错误包使用条目可能会停止PDE导出插件


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

  • 使用Runtime选项卡的Classpath部分添加jar
  • 使用“概述”选项卡中的“组织清单向导”执行所有必需的清单更改
  • 使用Overview选项卡中的导出向导导出完成的插件

  • 请注意,我使用的是Eclipse 3.3,因此您的理解可能会有所不同。

    谢谢VonC。让我解释一下我正在做什么,让所有人都来帮助我。我试图创建一个插件,调用Ant来执行已与IVY a dependence resolve framework集成的特定目标。到目前为止,如果我只从我正在工作的Eclipse,但是如果我将它导出到一个jar中,它就无法找到Ant中的依赖关系。顺便说一句,有人知道如何生成像Ant这样的插件吗?在Eclipse中,它包含几个文件夹,如lib、bin等。。