【问题标题】:Run Eclipse project which contains IApplication from another project运行包含来自另一个项目的 IApplication 的 Eclipse 项目
【发布时间】:2015-01-15 11:14:19
【问题描述】:

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

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

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

由于项目 A 是一个 IApplication,我不知道如何启动它。 (它不包含 main 方法,项目中只包含一个带有“一些”参数的 XMLFile。)

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

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

由于我从未创建过 Eclipse-PlugIn,我不确定它是否能够满足我所描述的所有需求。此外,我尝试使用this 教程创建一个测试插件,但我在第一条指令中的“启动 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>

它还包含 StringAttributes,如 target_bundlesorg.eclipse.jdt.launching.VM_ARGUMENTS,它们包含大量属性。

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

感谢您的每一个建议。

【问题讨论】:

  • 如果它使用IApplication,它是一个必须作为独立程序运行的 Eclipse 富客户端程序 (RCP)
  • 不可能从另一个项目开始吧?
  • 您可以将它作为一个单独的程序运行,但这可能对您没有帮助。如果 RCP 由插件组成,则您可以将插件与 RCP 分开使用。或者您可以编写新插件添加到 RCP。
  • 好的,谢谢你的帮助。

标签: java eclipse project equinox eclipse-kepler


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-24
    • 2014-10-06
    • 2012-10-25
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2016-10-19
    相关资源
    最近更新 更多