创建 SWT 项目的原生库导入问题
《Eclipse入门和精通》书中讲解了通过SWTDesinger自动创建SWT项目的步骤,其中导入原生图形库的部分产生了两个问题。分析解决如下——
由于本书是针对Eclipse3.0编写,版本有一些出入。对于Eclipse3.1.x而言,并没有书中提到的那个“org.eclipse.swt.win32_3.0.1”目录,自然也不会有目录下的swt.jar和swt-win32-3063.dll,这个目录在Eclipse3.1.x中被org.eclipse.swt.win32.win32.x86_3.1.x.jar文件替代,而原生库文件也被压缩到这个jar文件中,用WinRAR解压即可得到。
在安装了SWTDesigner后通过其建立项目时,会自动导入所有必须的jar文件到项目中,无需手动导入,但如果之前解压了org.eclipse.swt.win32.win32.x86_3.1.x.jar文件,请将解压目录删除之后再建立项目,否则会导入出错。这个错误是因为导入了解压得到的“org.eclipse.swt.win32.win32.x86_3.1.x”目录,可以手动修改为导入整个jar文件就ok了。
接下来是原生库的导入,我发现用书上的方法导入原生库到项目中(实际就是将swt-win32-xxxx.dll文件复制到项目根目录),会出现问题。后来翻查《SWT/JFaceinAction》得知,有多种方法导入原生库,但作者发现最好的方法是将swt-win32-xxxx.dll文件直接复制到“$Java\jre\bin”目录下,这样才不会引起诸多问题。
总结解决步骤:
①安装Eclipse3.1.x和SWTDesigner,解压org.eclipse.swt.win32.win32.x86_3.1.x.jar文件。
②复制swt-win32-xxxx.dll到“$Java\jre\bin”目录下。
③删除解压org.eclipse.swt.win32.win32.x86_3.1.x.jar得到的文件夹。
④新建SWT/JFaceJavaProject,然后就可以直接新建SWT类文件了,无需再导入原生包。
PS:推荐参考《SWT/JFaceinAction》配合《Eclipse入门和精通》进行学习。在《SWT/JFaceinAction》附录“CreatingprojectswithSWT/JFace”中的316页可以找到关于导入原生图形库的讲述:
Onceyou’vefoundthegraphicslibrary,youneedtomakesuretheapplicationlaunchercanuseit.Thedocumentationlistsanumberofwaystodothis,butwe’vefoundthataddingacopytothe$JAVA/jre/bindirectoryworksbest.
Othermethods,whichcanbelessreliable,includethefollowing:
Option1:CopyandpastethesefilesdirectlyintheWidgetWindowproject.
Option2:Includethenativelibraryinanydirectorypointedtobythejava.library.pathvariable.Thisvariable,amongothers,canbeseenbyclickingHelp->AboutEclipsePlatform->ConfigurationDetails.
Option3:GotoControlPanel->System->Advanced->EnvironmentalVariablesandupdatethePATHvariablewiththedirectorycontainingthelibraryfile.
上一篇:java中内部类的研究
下一篇:自己对三层架构理论的理解
相关信息: