jar 转 exe的工具很多,比较流行的有exe4j 、installanywhere(主要做安装)、jsmooth。我在这里选择了jsmooth。实际上jsmooth 和exe4j的操作都差不多,而jsmooth比exe4j还要小巧,我选择jsmooth。
制作分两种情况,一种是将jre 和 exe一同发布,这样你就可以不用考虑客户机器上安装jvm没有了。一种是要求客户机器上安装有jre的情况。

1. 先将要求客户机上安装有jre的情况:
很多文章都喜欢从界面操作上开始讲,而我认为从项目文件讲就更简单了。如下是我的jar转exe的test.exe.jsmooth文件。用jsmooth直接打开 test.exe.jsmooth这个文件(至于界面上每一步该怎么设置都一目了然,全设置好了。),直接编译就ok了。
test.exe.jsmooth文件内容如下:
 1 <?xml version="1.0" encoding="ISO-8859-1"?>
 2 <jsmoothproject>
 3 <JVMSearchPath>registry</JVMSearchPath>
 4 <JVMSearchPath>javahome</JVMSearchPath>
 5 <JVMSearchPath>jrepath</JVMSearchPath>
 6 <JVMSearchPath>jdkpath</JVMSearchPath>
 7 <JVMSearchPath>exepath</JVMSearchPath>
 8 <JVMSearchPath>jview</JVMSearchPath>
 9 <arguments></arguments>
10 <currentDirectory>.</currentDirectory>
11 <embeddedJar>true</embeddedJar>
12 <executableName>test.exe</executableName>
13 <iconLocation>Ico02 042.ico</iconLocation>
14 <initialMemoryHeap>-1</initialMemoryHeap>
15 <jarLocation>JavaApplication19.jar</jarLocation>
16 <mainClassName>Client</mainClassName>
17 <maximumMemoryHeap>-1</maximumMemoryHeap>
18 <maximumVersion></maximumVersion>
19 <minimumVersion></minimumVersion>
20 <skeletonName>Windowed Wrapper</skeletonName>
21 <skeletonProperties>
22 <key>Message</key>
23 <value>This program needs Java to run.
24 Please download it at http://www.java.com</value>
25 </skeletonProperties>
26 <skeletonProperties>
27 <key>URL</key>
28 <value>http://www.java.com</value>
29 </skeletonProperties>
30 <skeletonProperties>
31 <key>SingleProcess</key>
32 <value>1</value>
33 </skeletonProperties>
34 <skeletonProperties>
35 <key>Debug</key>
36 <value>0</value>
37 </skeletonProperties>
38 </jsmoothproject>

其中:
(1).<
arguments></arguments>表示运行参数。
(2).
<currentDirectory>.</currentDirectory>表示的是当前目录,那么你直接把要转换的jar和test.exe.jsmooth放在同一个目录。(我这里都是放在同一个目录下)
(3).<executableName>test.exe</executableName>表示生成exe的名字。(我没有测试放在不同目录下的结果,我不认为有必要做这个测试)。
(4).<iconLocation>Ico02 042.ico</iconLocation>表示exe所使用的图标。
(5).<jarLocation>JavaApplication19.jar</jarLocation>表示要转的jar文件。
(6).<mainClassName>Client</mainClassName> 表示主类(7).<skeletonName>Windowed Wrapper</skeletonName>表示的是运行时候,不需要带dos控制台窗口。对应的是Console Wrapper。

直接保存test.exe.jsmooth文件就可以用。
对于应用的目录结构图:
21.jpg

2.第2种情况,即带jre的exe

<?xml version="1.0" encoding="ISO-8859-1"?>
<jsmoothproject>
<JVMSearchPath>registry</JVMSearchPath>
<JVMSearchPath>javahome</JVMSearchPath>
<JVMSearchPath>jrepath</JVMSearchPath>
<JVMSearchPath>jdkpath</JVMSearchPath>
<JVMSearchPath>exepath</JVMSearchPath>
<JVMSearchPath>jview</JVMSearchPath>
<arguments></arguments>
<bundledJVMPath>java</bundledJVMPath>
<classPath>java\bin</classPath>
<classPath>java\lib</classPath>
<classPath>java\lib\rt.jar</classPath>
<classPath>java\lib\javaws.jar</classPath>
<currentDirectory>Test.exe</currentDirectory>
<embeddedJar>true</embeddedJar>
<executableName>Test.exe</executableName>
……后面同上例一样。
最重要的区别是这个绑定了java虚拟机,指定了classpath路径。
编译时候,把java文件放在同一目录下:
22.jpg
其中test.exe是生成的。
简单吧,编译就生成了exe文件了。
posted on 2007-03-06 17:31 -274°C 阅读(12712) 评论(19)  编辑  收藏 所属分类: JAVA


FeedBack:
# re: jar 转 exe 个人经验总结
2007-03-06 19:30 | BeanSoft
jsmooth 做的还算很不错的了....  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-03-07 09:48 | lubaolin
可不可以发给我一份
lubaolu@163.com
先谢谢
  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-03-07 10:17 | αβγ
jsmooth吗?我发到你邮箱了。  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-03-07 23:04 | Ma
我怎么编译不了?奇怪  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-03-08 12:05 | αβγ
编译不了,总有信息提示吧。  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-03-27 00:41 | 念思学
可以给我一份吗?
liangshuang22@126.com  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-10-12 14:05 | 为爱守候
可以给我一份吗?
dengfeng4860@163.com  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-10-13 01:16 | -274°C
@为爱守候
jsmooth已发。  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2007-10-21 15:07 | 我也要.
我想要jsmooth
最好能加上一个做好了的.exe程序
我的邮箱是yuxingyc@163.com
谢谢!!  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2008-05-13 08:50 | mag
我也要一份jsmooth 和一个做好了的.exe程序(带jre的exe),谢谢了
magicalzhang@163.com
  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2008-05-15 16:39 | daviddong
我的Jsmooth感觉进度很慢,这个是怎么回事?导入文件后就如同死机一般,难道对硬件配置要求高?我的内存512的。  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2008-06-05 13:01 | 274
@daviddong

对机器要求不高。
  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2008-06-05 13:04 | 274
@mag

sorry,时间隔久了,没有找到。其实上面已经写的很清楚了。操作起来也就几步。  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2009-01-24 18:32 | IT公司面试手册
很好的文章 太谢谢了  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2009-03-01 03:26 | Joseph
很好的文章~謝謝~
可以email jsmooth 給我嗎
josephlxc@yahoo.com.tw
謝謝~  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2009-03-12 11:37 | 33
可以给我一份吗。
zhangyong0129@126.com
谢谢  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2009-04-06 00:46 | clock88731
我转一下呵。会注明出处。  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2009-06-03 17:17 | PUSHIHAO
我也要一份jsmooth 和一个做好了的.exe程序(带jre的exe),谢谢了
1123191615@QQ.COM  回复  更多评论
  
# re: jar 转 exe 个人经验总结
2009-06-16 16:12 | -274°C
@PUSHIHAO
sorry,多年未写java,这些都遗失了。请联系其他人吧。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

常用链接

留言簿(21)

随笔分类(265)

随笔档案(242)

相册

JAVA网站

关注的Blog

搜索

  •  

积分与排名

  • 积分 - 909339
  • 排名 - 40

最新评论