与eclipse的插件开发有关的疑问

时间:2013-06-27 12:49:00

标签: java eclipse plugins eclipse-plugin

eclipse插件开发的新手。 我已经将jar项目转换为eclipse插件。但我真的不知道,如何利用它。一些基本的疑惑,

  1. 如何在我们的程序中调用插件中可用的方法??
  2. 每个暴露的方法都应该是公开的,以便在我们的程序中使用它吗?
  3. 我的想法就像一个插入两个数字的插件。用户安装插件并在此插件中调用add(x,y)方法。就像从包含jar中调用方法一样。

    有许多教程解释如何创建插件,但我还没有找到如何使用它。

2 个答案:

答案 0 :(得分:1)

您所描述的是一个简单的OSGi包,没有特定于Eclipse的功能。就新插件向导而言,您的“无助于UI”。从技术上讲,这意味着它不需要plugin.xml

你的外部代码感知bundle的方式就像它是一个普通的jar:你可以访问它的类,实例化它们,并调用它们的方法。或者你可以调用静态方法,就像你习惯的那样。

OSGi提供的附加层意味着您可以识别捆绑包导出到其用户的Java包。因此,其他捆绑包无法访问公共但未驻留在导出包中的类(这仅适用于严格模式;否则您只会获得访问限制警告)

答案 1 :(得分:0)

我认为这是你所描述的情况......

您有一个希望Eclipse Java(JDT)用户安装的插件。在他们的Java项目中,您希望他们能够使用插件中的一些Java类。

在Java中,必须通过类加载器在类路径中找到类。 JDT通过“类路径容器”管理项目的类路径。第一个例子是当你创建一个Java项目时,JDT会将“JRE System Library”添加为容器。您可以在Package Explorer中的项目下看到它。

另一个例子是JUnit插件。您会注意到,当您第一次向JDT项目添加JUnit测试用例时,会出现一个对话框,询问是否将JUnit库添加到构建路径。 (这是JUnit插件的新文件向导的显式行为。)如果您同意,您将在Package Explorer中看到“JUnit 4”容器。

又一个例子:PDE扩展了JDT的功能。当您创建插件项目时,PDE会根据您在插件清单中声明的​​插件依赖项添加一个“Plug-in Dependencies”容器。

用户可以为自己喜欢的库创建和引用自己的类路径容器。

但是,当然,作为一个库提供者,你想给它们像JUnit插件那样。为此,在您的插件中:

  1. 添加对JDT Core的依赖
  2. 从此扩展点扩展:org.eclipse.jdt.core.classpathContainerInitializer
  3. 如果您希望向导页面创建或编辑类路径容器条目:

    1. 添加对JDT UI的依赖
    2. 从此扩展点延伸:org.eclipse.jdt.ui.classpathContainerPage
    3. 某些插件使用向导页面来自定义容器(JUnit允许选择JUnit 3或4);其他人只是使用该页面来提供有关容器的信息。

      请参阅JDT文档主题Setting the Java build path并交叉引用您熟悉的任何示例的源代码。

      这是一篇好文章:Simplify Eclipse classpaths using classpath containers

      回答你的问题:

      1. 您必须使用initialize子类的ClasspathContainerInitializer方法将类添加到类路径中。
      2. 是的,您希望客户端调用的方法必须是公共的,并且是您添加到类路径的类的成员。