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

时间:2015-01-15 11:14:19

标签: java eclipse project equinox eclipse-kepler

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

它们彼此依赖,其中一个项目是执行的先前入口点。我们称之为"项目A"。

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

由于项目A是IApplication,我不知道如何启动它。 (它不包含主方法,只包含带有&#34的XML文件;项目中包含一些"参数。)

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

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

由于我从未创建过Eclipse-PlugIn,因此我不确定它是否能够满足我所描述的所有需求。此外,我尝试使用this教程创建一个测试插件,但我在#34;启动Eclipse应用程序"在第一条指令内。

那么,有人可以给我一个关于启动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本身

我很感谢你的每一条建议。

1 个答案:

答案 0 :(得分:0)

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