swt生成、jar可执行包生成.exe可执行文件(giter)

最近看了有关swt生成exe文件的有关内容,现将自己的一点经验分享下:

由于很多的程序是在windows下面运行的,所以很多java开发的应用程序需要打包成可执行文件。

1、生成可执行jar包

其实方法有很多,主要有以下几种:

利用工具生成,如在eclipse中添加插件fat jar等(百度下,很多的),

也可以用eclispe的export直接导出。

最直接的方法就是用jar命令直接打包了,但是要将manifest.mf加入

到要打包的主目录下,然后用命jar cvfm yourjarname.jar manifest.mf yourmulu,就可以得到可执行的

jar包了(前提是你的系统jre配置正确,在windows下面默认是javaw执行jar包的),manifest.mf中主要设

置了Main-Class: 也就是你的启动类,如下:   Manifest-Version:1.0 Main-Class:your.class Created-

By:1.3.0(SunMicrosystemsInc.) 。
注意:在打包swt应用程序时,windows所需的动态连接文件需要放在所生成jar包的同一目录下,或者在

path路径里面设置好,否则会出现错误。

2、生成exe文件

推荐用exe4j,下载地址:http://www.sstc.org.cn/Components/DetailView.aspx?id=1f30ec33-a275-4d36-b075-c1c5b525f2ab&typename=download

这个用起来比较简单,不过是E文。
注意:icon的图片格式就可以了,另外需要将所用到的外部jar加入到classpath中。jdk中的就不需要加了


3、生成安装程序

推荐用install4j,也是E文的,也是不错的安装程序,不过比较复杂些,hehe

 

 

 

SWT的介绍(附加:Eclicpse3.1.1下配置SWT,打包发布SWT程序,转EXE一条龙过程记录)

一、SWT的介绍

SWT的介绍(配置,打包步骤)

(使用SWT在各个操作系统上的效果)

 

SWT(Standard Widget Toolkit)

Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。
  在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit). 虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。
  为解决这个问题,Sun又创建了一个新的框架。这个框架不再使用原生窗口部件,而是使用仿真窗口部件(emulated widgets)。这个方法虽然解决了LCD问题,并且提供了丰富的窗口部件集,但是它也带来了新的问题。例如,Swing应用程序的界面外观不再和原生应用程序的外观相似。虽然在JVM中这些Swing应用程序已经得到了最大程度的性能改善,但是它们还是存在着其原生对应物所不具有的性能问题。并且,Swing应用程序消耗太多的内存,这样Swing不适于一些小设备,如PDA和移动电话等。
  IBM进行了尝试以彻底解决AWT和Swing框架带来的上述问题。最终,IBM创建了一个新的GUI库,这就是SWT。SWT框架通过JNI来访问原生窗口部件。如果在宿主(host)平台上无法找到一个窗口部件,SWT就会自动地模拟它。
  为了方便开发SWT程序,在SWT基础上又创建了一个更易用、功能强大的图形包“JFace”。然而,JFace并不能完全覆盖SWT的所有功能,所以编程时SWT、JFace都会要用到,但是一般来说,能用JFace的组件就最好不要用SWT的。
  SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API。或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。目前SWT已经十分稳定。这里指的稳定应该包含两层意思:
  一是指性能上的稳定,其中的关键是源于SWT的设计理念。SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是简单应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性。

  另一个稳定是指SWT API包中的类、方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布),而导致自己的程序代码变化过大。从一个版本的SWT更新至另一版本,通常只需要简单将SWT包换掉就可以了。

 

 

二、Eclicpse3.1.1下配置SWT,打包发布SWT程序,转EXE一条龙过程记录
Eclipse下安装 SWT
我这里用的是1.1.0.1,并且页面上就有推荐的Eclipse3.1.1,EMF,GEF。都下载了!
2.按照 Eclipse安装插件的方法,安装 SWT,EMF,GEF。
3.如果不出意外,就可以正常使用了!
这里有一个建议:最好使用纯的Eclipse,我开始用WTP版的,怎么配置也不行。
可以建立Visual Class,但是不能可视化添加控件,或者看不到控件的属性,或者Text,TextArea控件无法添加。后来按照以上方法,重新来了一次,OK了!
二打包发布 SWT程序
1.因为需要 SWTjar.但是Eclipse3.1.1配合的的SWT不是通过 SWT.jar发布的!是org.eclipse.swt.win32.win32.x86_3.1.0.jar。里面包括了JINI的DLL和 SWT类文件。
需要下载
这里有 SWT.jar,和3个DLL,把他们解压缩出来,备用!
2.通过 Eclipse的导出功能,生成一个 可执行的jar,MANIFEST.MF文件选择由 Eclipse生成,并且保存到项目中。
3.上面2的步骤,只是为了得到 MANIFEST.MF文件。下面修改一下这个文件。
加上 Class-Path SWT.jar
如果还有其他的jar,用空格分开,加到后面
4.再生成一次jar, MANIFEST.MF选择修改后的。
5.将打包的jar, SWT.jar,3个DLL放到一个文件夹下,双击可执行的jar,程序运行!
三jar转EXE
1.打开 JSmooth0.9.7。
2.选择skeleton,在skeleton properties中先把Launch java app in the exe process,Debug console选中。可以查看生成EXE文件执行过程信息。
3.选择Executable.
选择生成的EXE文件存放位置。
选择EXE文件图标
设置当前路径,选择要转换的jar文件所在文件夹
4.选择Application
设置Main Class,可执行jar中的Main Class注意写类全名
设置Application Argument,如果需要传入参数,写到这里
设置Embedded jar: 可执行的jar
设置Classpath:SWT.jar 如果有其他的继续添加
5.选择JVM Selection。默认吧。
6.JVM Configuration:
可以设置java properties,内存使用
7.点齿轮。生成!看是否有错误。
8.EXE执行需要的文件:EXE,3个DLL,SWT.jar
把他们考到其他目录,一样可以执行!
9.去掉skeleton properties中的Launch java app in the exe process,Debug console选项。
重新生成。应该OK了!

 


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值