运行 包含来自另一个项目的 IApplication 的 Eclipse 项目

Run Eclipse project which contains IApplication from another project

我有一个 Eclipse (Kepler Service Release 2) 工作区,其中有几个项目可以分为两部分。第一部分包含除一个项目之外的所有项目。

它们相互依赖,其中一个项目是执行的优先入口点。我们称它为 "project A".

现在我创建了构成第二部分的 "project B"。我需要从项目 B 开始项目 A,从中获取一些计算结果,并对这些结果做一些进一步的工作(包括用户输入和文件操作)。

由于项目 A 是一个 IApplication,所以我不知道如何启动它。 (它不包含 main 方法,项目中只包含一个带有 "some" 参数的 XML 文件。)

起初我创建了一个普通的 Eclipse 项目并添加了项目 A 作为依赖项,这允许我从项目 A 实例化所需的 class,但我无法 运行 public Object start(IApplicationContext context) 方法,因为它需要一个 IApplicationContext。凭直觉,我尝试包含必要的 class 并自行创建上下文。

在意识到这种方法行不通之后,我搜索了有关 IApplication(Context) 的信息,现在我假设这些 classes 仅在 Eclipse-Plugin Development 中可用。

因为我从未创建过 Eclipse-PlugIn,所以我不确定它是否能够满足我描述的所有需求。此外,我尝试使用 this 教程创建一个测试插件,但我在第一条指令中的 "Launch an Eclipse Application" 处失败了。

那么,有人可以给我一些启动 IApplication 的建议吗?

以防万一,这里是我之前提到的 XML 配置文件的摘录。它被称为"ClassIWantToStart".launch

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
<booleanAttribute key="append.args" value="true"/>
<booleanAttribute key="automaticAdd" value="false"/>
<booleanAttribute key="automaticValidate" value="false"/>
<stringAttribute key="bootstrap" value=""/>
...
</launchConfiguration>

它还包含像 target_bundlesorg.eclipse.jdt.launching.VM_ARGUMENTS 这样包含大量属性的 StringAttributes。

PS: 项目 A 本身似乎是一个 Eclipse-PlugIn

感谢您的每一个建议。

我通过反转依赖关系解决了这个问题。现在 RCP 加载所有插件。