目前的问题是,官网已经找不到swt的下载,于是我就怀疑是不是在3.7.2版本里,swt同JUnit一样已经在Eclipse里了。
从eclipse的plugins文件夹里,找到30个文件跟swt有关,其中28个文件大小都小于30Kb,从名字上看是别的操作系统平台的。
只有下面两个有可能是我需要的:org.eclipse.swt.win32.win32.x86_64_3.7.2.v3740f(2.48M)和org.eclipse.swt.win32.win32.x86_64.source_3.7.2.v3740f(2.28M)。
我觉得2.48M那个是SWT的jar包,请问是不是?
另外,这个jar包不能像我那本书里讲的那样导入成一个新的工程。书中说,这种包形式的,“需要在自己项目的构建路径上指定SWT.jar的位置,并且要为Java JNI调用指定SWT JNI的位置”。
这是不是说,swt.jar不能像别的归档文件一样导入就能直接用,而是还需要“为Java JNI调用指定SWT JNI的位置”?
如果是,那怎样“为Java JNI调用指定SWT JNI的位置”?
我是在学一本叫《Eclipse核心编程》的书,里面用的Eclipse3.1
在讲SWT的时候是让读者从官网下载的,说是从“PDE”里去下,从截图看,需要下载的文件是“swt-3.1.2-win32-x86.zip”,大约2M。
书中的使用方法是,由这个zip文件直接建立一个工程,然后自己的程序的构建路径里依附上这个工程,然后编程。
字数不够了,我在问题补充里继续写……
噢,你在学eclipse编程啊。
首先,楼主,你对概念理解错了。JNI是java native inteface,java本地接口,是java和dll、so之类的操作系统库做交互用的。
SWT的实现即是通过调用系统的本地接口来实现的,这个意思其实只是说,SWT的展现会和操作系统保持一致。
然后,SWT是eclipse的插件,你找到的那两个,那是swt的系统包和这个包的源码文件。
再,在任何一个eclipse版本里,eclipse就是包含这些插件的。因为eclipse本身就需要用这些插件来构建自身。
理解了上面说的,再回到你的问题:
1、org.eclipse.swt.win32.win32.x86_64_3.7.2.v3740f.jar是正确的包,在构建里引用即可,不需要做其他的事情。
2、你还可以选择创建eclipse的插件工程,在插件的依赖里添加。
再,另外那位同学啊,SWT desinger只是swt的一个图形化开发插件,通过拖拽操作来构建SWT的界面,对于学习SWT一点好处都没有,楼主,如果目的只是学习,不推荐使用。
需要导入的包如图:
我刚才也发现,org.eclipse.swt.win32.win32.x86_64_3.7.2.v3740f.jar(我重命名为swt.jar)放到workspace中项目的src/lib里去,在构建里add jar,就可以运行HelloSWT了。
但是很多地方,如http://wenku.baidu.com/view/3d7efeeb19e8b8f67c1cb9fd.html
这个文档里,对swt.jar需要进行两步的环境设置,首先是在构建里add variable(这跟我不一样,有什么区别?),之后还要设置java.library.path变量。
这种SWT安装是怎么回事
因为你的SWT.jar比他们多了些东西。
注意到没有,”win32.win32.x86“
这个是说,这个swt是win32 x86版本的,放到linux、solaris等操作系统下面就不能用了,因为他内置了环境配置。
你得另外下载org.eclipse.swt.linux.x86之类的包。
这是由于,你下载的是eclipse的for windows版本。所以它的包必然也是windows的。
你要下载其他系统的你可以这么搜 ”swt for linux"之类。