将SWT包装成Eclipse Plugin需要修改的地方

把一个SWT程序包装到Eclipse里作为Plugin运行很容易,但有以下几点需要注意:

1、Eclipse的PDE Tools->Convert Projects to Plug-in Projects可生成Plugin工程需要的文件,注意原来在classpath里对swt.jar的引用应改为manifest.mf文件里对 org.eclipse.ui的依赖。

2、相对路径文件的使用,在SWT里用ClassLoader.getResourceAsStream()等方法引用的文件放在Plugin里会找不到,应改为

FileLocator.toFileURL(Platform.getBundle("plugin.id").getEntry("/images")).getFile();

或与其等效的方式。

3、对本地方法需要的静态链接库dll文件的引用,如果SWT程序是在启动参数里指定的,在Plugin里需要修改,可在系统环境变量里加到Path里。

4、SWT程序的入口类一般会被Editor或View等Plugin元素代替,要注意原来在入口类里初始化的变量也要改到Plugin里,特别是静态变量,正确初始化以防止NullPointerException。

5、必要的话,利用JFace等Plugin特性改写原来的SWT对话框、树、表格等元素,可使UI更具Plugin风格。

搬家前链接:https://www.cnblogs.com/bjzhanghao/archive/2007/01/11/617449.html