以编程方式启动Eclipse IApplication

时间:2011-09-26 14:17:50

标签: java eclipse

有没有人知道如何以编程方式启动Eclipse IApplication?

这是一个命令行应用程序,我想为它编写单元测试。

应该这样:

    org.eclipse.equinox.app.IApplication app = new myApp();
    try {
        app.start(???);
    } catch (Exception e) {
        e.printStackTrace();
    }

start方法需要一个IApplicationContext。

我从哪里得到这个?

非常感谢您的帮助

2 个答案:

答案 0 :(得分:2)

使用OSGi ApplicationDescriptor服务启动此类应用程序。在Equinox中,org.eclipse.core.runtime.applications中的每一个都变为ApplicationDescriptor实例。然后,使用ApplicationDescriptor.launch(Map)方法启动实例。 Eclipse Help提供了非常广泛的简要说明,请务必阅读Eclipsepedia上的应用基数。

答案 1 :(得分:1)

以编程方式启动应用程序进行单元测试似乎不是正确的方法。

相反,您可以编写Eclipse插件测试,并且可以启动所需的OSGi容器,您可以在其中初始化测试。当然,您必须进行一些手动初始化,这与提供相应的测试套件有关 - 但在这种情况下,您可以手动调用代码而不是依赖外部启动过程。

请查看details的以下常见问题解答条目http://wiki.eclipse.org/FAQ_What_is_a_PDE_JUnit_test%3F