一   JSmooth  
1.出品  
Jsmooth,Sourceforge.net  
2.   类型  
free  
3.   下载  
http://jsmooth.sourceforge.net/download.php  
4.   步骤  
a)利用Eclipse将所需要的主类打成可独立运行的jar包,注意添加manifest属性和MainClass。  
b)新建一个Jsmooth工程  
c)   在sketlon中选择“Console“   或者   “Windowed“  
d)   在Executable中的配置:  
i.   Executable   Binary:填写目的输出源的名称。如test.exe.  
ii.   Executable   Icon   :选择一个好看点的图标  
iii.   Current   Driectory   :.(表示当前工程目录,当然也可行换成别的,As   you   wish.)  
e)   在Application中的配置:  
i.   Classpath:选中我们所生成的jar包以及运行该jar文件所需要的类库  
ii.   Main-Class:选中我们所需要运行的主类。  
iii.   可选项Use   an   embedded   jar:运行该exe时可能需要到的类库(这里只能有一个类库)。  
f)   在JVM   Selection中的配置:  
i.   Minimum   JVM   Version:写一个需要运行该程序所需的最低的就JVM的版本,比如1.4  
g)   Compile:OK,编译成功后,在你的输出目录上就会有一个崭新的exe程序了。Just   enjoy   it.  
二   exe4J  
1.   出品  
ej-technologies  
2.类型  
Shared   software,needs   license  
3.下载  
http://www.ej-technologies.com/download/exe4j/files.php  
4.   步骤  
a)   利用Eclipse将所需要的主类打成可独立运行的jar包,注意添加manifest属性和MainClass。  
b)   新建一个exe4j工程  
c)   选择“JAR   in   exe“   mode  
d)   在Configure   application中的配置:  
i.   Short   name:随便写.  
ii.   Ourput   Driectory   :选择输出路径。  
e)   在Configure   Executable中的配置:  
i.   Executable   type:   有三个选项,图形,控制台.或服务。从简单点开始吧,这里我们选console  
ii.   Executable   name:填写目的输出源的名称。如test.exe  
iii.   Icon   file:exe图标文件,但必须是.ico文件  
f)   在Configure   Java   invocation中的配置:  
i.   Classpath:选中我们所生成的jar包以及运行该jar文件所需要的类库  
ii.   Main-Class:选中我们所需要运行的主类。  
iii.Arguments(可选项):输入参数。我们这里暂不需要。  
g)在Configure   JRE中的配置:  
i.   Minimum   Version:写一个需要运行该程序所需的最低的就JVM的版本,比如1.4  
h)   一直next,对于所遇到的步骤选项都默认,直到finish:OK。编译成功后,在你的输出目录上就会有一个崭新的exe程序了。Just   enjoy   it.  
三   总结和比较  
由Java生成exe的工具还有很多,上面两种是我个人觉得用起来觉得比较方便的。两者的原理基本相同,但具体用起来还是有一点点不太一样的:  
1.相同点  
a)   最大的相同点当然是他们原理是互通的。都是通过将可运行的java程序打成可执行的jar包。再作转换。  
b)   所生成的exe可执行程序,需要在装有比minimum   version高的JVM环境下运行。  
2.   不同点  
a)   生成exe的时候,如果想要exe只需要pure   JVM的环境(不需要第三方的类库)就可以运行的话。在JSmooth需要将所有的用到的第三方类库压缩成一个jar包(因为它有个embeded   jar的选项),这就比较麻烦,因为当需要的jar多于一个时候,就需要将这些jar包先用jar   –xvf   解压缩,在用jar   –cvf重新制作新的jar文件,再放到embeded   jar选项中去;而exe4J则会把classppath中所用到的jar包也会编译到exe中去。  
b)   JSmooth是免费的;而exe4J是共享软件,需要注册,否则在执行exe的时候会弹出很惹人烦的提示框。  
c)ico文件的选择:exe4J要求严格的ico文件,而JSmooth则可以兼容jpg等其他各式的图片。
参考资料:http://zicozhang.spaces.live.com/