将java程序编译成独立运行的exe文件
众所周知java的程序可以“一次编译,到处运行”,这个特性不错,但是实现这个特性的前提是当前的平台
必须有相应的jvm,而且如果当前平台的jvm低于程序要求的版本的话这个程序就不能正常运行,还有就是运行
java程序除了直接双击jar包之外就是在控制台输入命令执行,这样显得java程序跟其他语言开发的程序有很大
的差别,我们可以实现像其他语言开发的软件一样独立运行和实现一些定制的功能吗?答案是肯定的,下面就
介绍一下用exe4j将java程序编译成使用自带jvm的exe文件。
准备工作:如图,这个是我写的程序的输出目录,我要把maquezhangben.jar编译成exe文件。
首先到jre的目录下把整个jre文件夹拷贝到这个目录下,如果你想让自定程序的图标的话也可以事先把相应的图标文件拷贝到这里来。
下面,打开exe4j程序,我的这个版本是4.0,它支持java1.6的版本。这个软件使用起来非常简单,按照提示就可以完成。所以下面的介绍主要以截图为主,顺便假一些简单的文字介绍。
在这一步直接点击next开始。
这一步是选择模式,选择"JAR in EXE" mode ,点击next。
这一步输入程序的名字和exe文件的输出目录,我选择的是刚才的程序程序输出目录,编译完成之后会在那个目录下建立一个exe文件,选择好之后点击next。
这里可以设置你的程序是图形化的应用程序还是命令行的或者是一个服务,我的是图形化的就选择默认的GUI
application,下面是输入执行文件的名字你输入什么,生成的时候就是什么.exe,“icon
file”选项是设置程序的图标,如果有的话就可以选中该项并指定图标文件的路径。下面的选项是设置是否同时只允许一个实例运行,如果是就打钩,不是的话就空着。设置好之后点击next。
接下来是添加你的jar包,选择maquezhangben.jar添加就可以。添加完毕之后回到这个画面你要在“main
class”那里选择主类,我的是maquezhangben.Main,选择好之后点击next。
这里设置java的版本,根据情况设置就可以。如果你要使用自己的jvm那么这里就不要点击next,点击左边的“search
sequence”,默认是以下的选项,即默认搜索顺序为注册表和java_home、jdk_home变量,这里都删掉。添加我们自己的jvm。
选择directory,然后选中刚才拷贝到输出目录的那个jre6文件夹即可,点击下一步。
如果你想让程序启动前显示一个图片,那么在这里设置就可以,支持jpg、gif、bmp类型。,设置好点击next。
这里是设置提示信息,默认既可,点击next。
程序开始编译。
编译完成,现在在输出目录就会多出一个exe文件,直接点exit即可,是否要保存这个任务随便。
这个是程序输出目录,maquezhangben.jar可以删除了。
现在看起来一切都很好,但是当我点击软件.exe的时候却出现这个提示,让人很恼火~
出现这个提示是因为程序没有找到相关lib目录下的那个数据库驱动的类,解决方法就是在search
sequence中加入lib目录,或者把lib目录下的jar文件拷贝到jre6libext目录下,这样它就可以正常使用了。