Read Sean

Read me, read Sean.
posts - 508, comments - 655, trackbacks - 9, articles - 4

和Swing应用的直接跨平台不同,SWT/RCP应用要想同时支持不同平台,需要做些特殊的配置,不过并不复杂,记录在此,希望能帮到有需要的朋友。目前win32、32位Linux、64位Linux和Mac OS X基本上就覆盖了所有主流的桌面操作系统,本文将以同时支持这四种OS为例来进行讲解。

首先是下载对应版本的RCP框架在不同操作系统的插件,将它们放在同一个plugins目录,比如你可以用win32为基础,然后添加针对其他平台的如下插件:

org.eclipse.core.filesystem
org.eclipse.core.filesystem.win32.x86
org.eclipse.core.filesystem.linux.x86
org.eclipse.core.filesystem.linux.x86_64
org.eclipse.core.filesystem.macosx

org.eclipse.core.net
org.eclipse.core.net.win32.x86
org.eclipse.core.net.linux.x86

org.eclipse.core.resources
org.eclipse.core.resources.win32.x86

org.eclipse.equinox.launcher
org.eclipse.equinox.launcher.win32.win32.x86
org.eclipse.equinox.launcher.gtk.linux.x86
org.eclipse.equinox.launcher.gtk.linux.x86_64
org.eclipse.equinox.launcher.carbon.macosx

org.eclipse.equinox.security
org.eclipse.equinox.security.win32.x86
org.eclipse.equinox.security.macosx

org.eclipse.swt
org.eclipse.swt.win32.win32.x86
org.eclipse.swt.gtk.linux.x86
org.eclipse.swt.gtk.linux.x86_64
org.eclipse.swt.carbon.macosx

接下来将不同平台下的eclipse可执行文件(Windows下面是eclipe.exe,Linux下是eclipse,Mac OS X下面是Eclipse.app)放到不同的子目录下,当然,如果你的RCP应用有别的名称,也可以重命名eclipse可执行文件,按照不同平台的规范更换图标,然后修改.ini文件让它的-startup和-startup.libraray参数指向相对路径中正确版本的插件即可。

最后分享一下我们软件部署的机制: 按照前面介绍的方式打包的应用程序,交到用户手里并不是很友好,因为需要他/她自己再做一次判断,当前的操作系统是什么,然后打开不同的目录去点击不同的可执行文件。我们的做法是单独提供一个Swing程序,在客户端自动判断OS,然后自动调用不同版本的可执行文件,同时,这个Swing程序被做成Java Web Start,把整个RCP客户端的下载和同步也处理掉,这样,对用户而言,整个过程就透明了,只需要一个JNLP,剩下的工作完全自动化。


只有注册用户登录后才能发表评论。


网站导航: