很多朋友在利用SWT/JFACE进行开发时,都会遇到java.lang.NoClassDefFoundError异常。异常信息如下:
java.lang.NoClassDefFoundError: org/osgi/framework/InvalidSyntaxException
NoClassDefFoundError异常是因为找不到所需类引起的,也就是说没有配置好SWT类库。很多文章在介绍SWT的时,都只简单了说了一下将swt.jar加入库引用,运行时Eclipse界面上没有错误就可以了。但是,SWT程序运行时还需要一些其它的jar包来支持。就如上面这个异常信息,就是因为缺少osgi.jar引起的。
解决方法:将eclipse\plugin\org.eclipse.osgi_3.0.1\osgi.jar加入库引用就可以了。我这里用的是eclipse3.0,其它版本的路径也相同。
为大家推荐一篇比较好的SWT/JFACE的文章:
在 Eclipse Workbench 之外使用 Eclipse GUI