从RCP应用程序启动SWT窗口/进程

时间:2010-03-01 17:09:33

标签: java eclipse eclipse-plugin swt eclipse-rcp

好的,我有一个(n)RCP应用程序(我没写过),以及我使用SWT开发的应用程序。我想要做的基本上是导入并使用参数启动SWT应用程序的main方法,这样它就可以在另一个窗口中运行,就像它是另一个进程一样。我想传递的参数是一个复杂的数据结构,我不想序列化。

我原本以为我可以设计我的SWT应用程序作为库并导入它,让它生成它的shell等等。但我忽略了思考SWT应用程序的主循环如何在主线程上运行,似乎有问题。 所以我开始考虑将它与eclipse插件架构集成。问题:我对eclipse插件架构或RCP一无所知,当我尝试学习时,我遇到了一个不可思议的问题,这些问题完全不同于我想要做的事情(即在Eclipse工作台上构建新按钮) 。我如何开始开发一个只启动另一个窗口的插件?

1 个答案:

答案 0 :(得分:1)

您需要某种按钮来启动您的应用程序,因此只需挂钩Eclipse菜单系统。

尝试:

1)在Eclipse中,文件 - >新项目 - >插件项目

2)确保选中“此插件将为ui做出贡献”

3)取消选中“生成激活器”,因为您不需要它

4)从代码模板中选择“Hello World命令”

现在您将拥有一个示例处理程序和一个名为execute的方法,您可以使用您在RCP应用程序中使用的显示调用SWT应用程序。如果你真的必须调用void main(String [] args),你可以通过调用Display.getDefault()获得显示,它将创建一个新显示或使用RCP应用程序中的显示。

您还必须修改plugin.xml文件,使其指向RCP应用程序中的正确菜单。如果您希望启动命令位于文件菜单等中。

最后,右键单击您的项目并选择Export - >插件开发并创建一个启动器所在的jar文件。将该jar放入RCP应用程序的plugins文件夹中,您应该可以从刚刚创建的命令启动SWT应用程序。 / p>

路上可能会有一些颠簸,但这大致是你必须要做的。