2012-03-09 279 views
5

我知道可以导出我的rcp应用程序,创建一个.exe文件并使用命令“Runtime.getRuntime().exec()”运行它,但是,我想启动我的rcp应用程序从java类的主要方法中创建并调用exe。可能吗?从main()启动RCP应用程序

回答

5

我不知道这是真的对你有所帮助,这取决于你为什么需要启动另一IApplication,但无论如何...

我会读维基页面约Equinox Application Model Demo演示了如何将OSGi应用程序管理员服务可以用来控制应用程序。您可以按照此处所述从CVS获取代码。 您还可以检查org.eclipse.equinox.internal.app.AppCommands类中的代码,即_startApp()方法中的代码,该方法也启动已定义的应用程序,并且是OSGi控制台中“startApp”命令的实现。

请注意,您可能需要调整从其中启动其他应用程序的Eclipse实例的方式(例如eclipse.application.registerDescriptors运行时选项see the help page)。

希望这会有所帮助!

2

假设你已经有OSGi运行,@Urbi的答案是正确的。如果您还需要启动OSGi,那么请谨慎从您自己的主线程(即应用​​程序的初始线程)执行此操作,否则SWT无法在所有平台上正常工作。

看看org.eclipse.core.runtime.adaptor.EclipseStarter为启动OSGi和您的应用程序的方式。

2

简单地创建一个捆绑org.eclipse.equinox.launcher的分支,它有一个类Main,它具有静态主函数(又称入口点),它委托给运行函数。你可以对它进行子类化,覆盖运行函数并做你想做的事情。

相关问题