Eclipse plugin 从main()启动RCP应用程序

Eclipse plugin 从main()启动RCP应用程序,eclipse-plugin,eclipse-rcp,rcp,launch,Eclipse Plugin,Eclipse Rcp,Rcp,Launch,我知道可以导出我的rcp应用程序,创建一个.exe文件,并使用命令“Runtime.getRuntime().exec()”运行它,但是我想从java类的主方法启动我的rcp应用程序,而无需创建和调用exe。可能吗?我不确定它是否真的对您有帮助,这取决于您为什么需要启动另一个IApplication,但无论如何 我将阅读wiki页面,该页面演示如何使用OSGi应用程序管理服务来控制应用程序。您可以从CVS中获取代码,如下所述。 您还可以检查org.eclipse.equinox.internal

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

我不确定它是否真的对您有帮助,这取决于您为什么需要启动另一个IApplication,但无论如何

我将阅读wiki页面,该页面演示如何使用OSGi应用程序管理服务来控制应用程序。您可以从CVS中获取代码,如下所述。 您还可以检查
org.eclipse.equinox.internal.app.AppCommands
类中的代码,即
\u startApp()
方法中的代码,该方法也启动已定义的应用程序,并且是OSGi控制台中“startApp”命令的实现

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


希望这有帮助

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


查看
org.eclipse.core.runtime.adapter.EclipseStarter
了解启动OSGi和应用程序的方法。

只需创建一个分支包org.eclipse.equinox.launcher它有一个类Main和静态主函数(也称为入口点),委托给run函数。您可以将其子类化为覆盖run函数并执行您想要执行的操作