将java程序导成.exe,在没有装jvm的机器上运行

 本人想将一个java小程序打包成.exe的形式,并让它能在没有装jvm的机器上运行。在网上查了好多资料总算成功了,感谢网络,阿门!!!现将方法贴出来。

    一、首先下一个exe4j 。它是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具。

    它的安装和使用可参考:http://hi.baidu.com/jsoftware/blog/item/c483eadd2d98b5315882dde6.html  ,写的很详细。

    这篇帖子也值得一看:http://topic.csdn.net/u/20080709/08/c892b6ce-db86-434b-a969-20a524817786.html。楼主最后的结论让我茅塞顿开:

    “1、exe4j是不可以将jre直接打包进exe中去的。但exe4j提供了一个搜索jre路径,这个路径可以是系统的环境变量,也可以是注册表,也可以是具体的某路径。
由于要实现在没有jvm的电脑上运行,搜索环境变量与注册表自然是无用功的了,所以只能搜某路径的。把jre的路径,加进去,就行了。但要注意一点:不然用绝对路径哦。我之前就是用绝对路径,导致无效的,而走了弯路的。比如可以用:./jre

2、打成安装包时,要将生成的exe文件与jre一起打包。为了确认打完包,可以用,在没打包之前,点该exe文件,要确认能运行,不然打包要白忙了。

   二、 这是我的程序文件的截图:

    将java程序导成.exe,在没有装jvm的机器上运行_第1张图片

    那个tank.jar  是用MyEclipse 将程序导出的jar文件,jre 就是你的机子上安装的jre目录(JDK里面)直接拷过来的。你要想让你的程序在别人没装jre的机器上运行,就得把jre拷到你的项目下。

    三、在用exe4j的时候,关键就是设置jre那步

    将java程序导成.exe,在没有装jvm的机器上运行_第2张图片

    点击 Search sequence后将java程序导成.exe,在没有装jvm的机器上运行_第3张图片

    把这些默认的查找目录去掉,点绿色的“+”,

    将java程序导成.exe,在没有装jvm的机器上运行_第4张图片

 

    把你拷到项目下的jre选上。这样下去一直点下一步,基本就ok了。

     将java程序导成.exe,在没有装jvm的机器上运行_第5张图片

    可以看到我的目录下多了个它生成的 MyTank.exe。

    把这下面的所有东西用WINRAR打包,到别人没有jvm的机子上,解压,双击就可以运行了。我之前很SB地只把那个.exe文件拷过去,怎么也运行不了,呵呵(连jre都没有,怎么运行?所以刚才那个配置jre的过程就是让它能找到jre,你自带的jre)。

    四、  我用winrar打包后大小是31.8M ,然后我又试了试用Inno SetUp 将它打包成一个安装包,大小是20.1M。

    Inno  SetUp的使用很简单,不过我还是犯了一个错误,

    将java程序导成.exe,在没有装jvm的机器上运行_第6张图片

    在下面的“其他应用程序文件”中,只需要选“添加文件夹”,选择你的项目的根目录,在弹出的“是否将子文件夹中的文件也包括在内”对话框选是,就可以了。我之前点“添加文件”,然后把目录下的文件都选择,导出得到的.exe文件虽然也是20.1M,却不能运行。我检查了一下,添加文件的时候没有把项目下的文件夹添加进去,于是我又点“添加文件夹”,把文件夹也加进去,结果还是不行。记住了!!!只需要选“添加文件夹”,选择你的项目的根目录就行。

你可能感兴趣的:(java)