将JAR文件添加到Eclipse插件

30

我尝试构建一个Eclipse插件,需要使用自己编写的一个依赖于其他JAR包的JAR包,但我不知道如何处理JAR包作为独立插件的起点在哪里。我应该只使用.jar文件吗?还是我错了?


1
这是正确的答案 - 如何添加外部JAR包 - ACV
3个回答

76

我认为我找到了一个适当的解决方案; 技巧在于您必须通过Eclipse实现所有文件。 我在此处复制了发布在news.eclipse.platform上的解决方案:


将JAR包包含在插件中:


  1. 使用 导入 > 文件系统 将jar文件导入到您的插件项目中,例如在 <project>/lib 目录下。
  2. 使用 添加... 按钮将jars添加到 plugin.xml > 运行时 选项卡的类路径部分。
  3. 使用 新建... 按钮重新添加 “.” 库 (当然不带引号)。
  4. 确保您的二进制构建在 plugin.xml > 构建 选项卡上导出新的JAR文件。
  5. 保存
  6. 在项目上使用 上下文菜单 > PDE工具 > 更新类路径 ,以正确地将jars添加到Eclipse项目类路径中。

1
如果我有两个插件引用同一个jar文件...我不想重复添加它,我可以在一个插件中导出包并在另一个插件中引用它吗?这样做是否正确? - nbz
不必使用Eclipse导入文件,您也可以创建一个符号链接,将其指向项目文件夹外的其他位置。例如,指向本地Maven存储库的符号链接。 - akuhn

2

什么是自己编写的jar文件?

通常情况下,您可以使用OSGi MANIFEST.MF将第三方jar文件转换为捆绑包(请参见New>Plug-in Development>Plug-in from Existing JAR archive),或者将它们包含在您的plugin.jar中,并添加额外的Bundle-ClassPath条目,如TomaC所提到的。

如果您指的是在运行时,您的插件将创建一个新的jar文件并需要加载它,那就不同了。


这更准确地指的是我将其导出为可运行的jar文件的项目;我还尝试使用“从现有Jar存档中提取插件”向导,但它没有起作用。我想要的过程需要一个XML解析器等等,如果我按下按钮,就必须调用后台进程,该进程调用HTTP请求,将其解析为XML并将一些值返回给插件。 - ethnix

-2

项目属性 -> Java构建路径 -> 添加外部jar包。这是你要找的吗?


这正是我不理解的地方,当这个jar依赖于其他jar时,我该如何将它包装成插件...在Eclipse中使用从jar创建插件向导并没有很好地工作,因为虽然我在依赖项中看到了它,但我无法从我的插件中导入类。 - ethnix
2
尝试创建一个新的插件项目。然后将您的jar文件复制/粘贴到新项目中。转到Runtime->Classpath添加.jar。构建项目,然后将其作为主插件的依赖项添加,看看是否可以导入。 - TomaC
我已将jar包复制到插件项目文件夹的根目录中,并使用它们的名称将其添加到类路径中,但是当我试图将其添加到我的依赖项中时,我找不到它们。 - ethnix
1
我刚刚创建了一个小的测试包装插件,覆盖了jdom。这是来自包装器manifest.mf的代码 Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: PluginWrapper Bundle-SymbolicName: PluginWrapper Bundle-Version: 1.0.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ClassPath: jdom.jar1。使用这个包装器,我可以在测试插件中导入org.jdom包。 - TomaC
谢谢你的帮助,那正是我所做的;我将所需的jar包复制到我的插件根目录中,并像你一样将它们添加到我的manifest.mf文件中。然而,由于某种原因,我无法导入org.dom4j等库,还有其他的想法吗?到目前为止感谢你的帮助。 - ethnix
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接