最近在看一个程序,该程序的图形界面采用SWT编写。想要将程序运行起来首先需要做的就是将swt(jface)包放到类路径上,swt包可以从http://www.eclipse.org/swt下载(其中除了swt包还有和操作系统相关的文件),和swt开发相关的插件为VE。一切就绪,运行程序发现了“Exception
in thread "main" java.lang.UnsatisfiedLinkError: no
swt-pi-gtk-3232 in java.library.path
”的错误(我的操作系统为Ubuntu7.04)。解决方案有多种,这里只介绍我使用的一种方法。首先应该在下来的swt压缩包中看到诸如下列的文件:
libswt-atk-gtk-3232.so
libswt-cairo-gtk-3232.so
libswt-gnome-gtk-3232.so
libswt-gtk-3232.so
libswt-mozilla-gtk-3232.so
libswt-pi-gtk-3232.so
现在要做的就是找到
java.library.path的位置,然后将swt包中与操作系统相关的文件烤到相应的路径下。查看
java.library.path的信息方法如下:
打开Eclipse->帮助->关于Eclipse
SDK->详细配置信息,仔细查看,可以发现这一行:
java.library.path=/usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.00/jre/../lib/i386:/usr/lib/firefox/:/usr/java/packages/lib/i386:/lib:/usr/lib
那么,把这些libswt-***.so拷到上面的某个目录下即可。
再次运行SWT程序,图形窗口出现。