很多朋友在利用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