方法1:
只是生成一个exe文件来调用jar文件【不怎么好】
下面是我的一个完整的Java程序 —— MyLoading
可以看到已经附带了jre1.6 , 下面先使用exe4j给它制作一个exe执行文件(即上图的MyLoading.exe),并指定我们自带的jre1.6 。以下是exe4j的启动界面,点击下一步开始创建配置文件。
接着选择类型,我们选择第一个,这样可以保证程序仍具有跨平台的特性。如果选择第二个,可以把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。
接下来设置你的程序的短文件名,源文件夹路径(如我的:E:\MyLoading),以及要生成的exe文件的存放目录,exe存放目录必须指定到源文件夹下,这里我把它指定为E:\Myloading的根目录下。
接下来,可以给我们即将生成的exe文件起一个名字,如我的“MyLoading”,还可以给它指定一个ico类型的图标,其它按默认就可以了,如图:
接下来的这一步,我们需要把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径:
基本上你所需要用到的Jar文件都要添加上去,可以逐个添加上去,也可以添加整个文件夹或者使用系统环境变量,为了使你的程序能够随处运行,所以还是强列建议你使用相对路径,并且不要使用环境变量。添加好你的类路径之后回到上一步去选择好你的"Main Class"即可。
接下来先选择我们的程序所需要的jre版本, 然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以必须把我们自带的jre指定为首选的运行环境,如图选择:Search sequence
默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了,然后添加我们自己的jre所在的目录路径,点+号开始:
这里还是建议使用相对的目录路径:
指定jre所在的目录,如图:
最后我的jre目录路径就是这样的:.\jre1.6
下面这一步只是简单的给程序添加一个启动画面,然后按默认下一步下一步就可以了。
程序最终生成了这个执行文件: MyLoading.exe
现在使用它,已经可以正常利用我们自带的jre启动程序了,但是整个程序仍有40M的大小.
现在我们使用Inno Setup进行压缩并制作一个安装包。
方法2:
将JAR打包,封装性更好:
下面开始详述步骤:
1.welcome-打开exe4j
如图,如果你有保存过的项目打包配置文件,那么点>>open打开即可。如果没有点>>next.
2.Project type-选择打包方式
由于我们讲的是打包jar生成exe,所以选“jar in exe”mode,这种方式可以把一个java应用程序打包成一个exe文件,但是不能将除jar以外的附加文件打包进去。然后>>next
3. Application info-配置生成的应用程序的信息
设置你的应用程序的名称和将要生成的可执行文件的输出文件夹。然后>>next.
4.Executable info -配置可执行文件的参数
type项根据你的程序的类型确定,本例为GUI程序;接下来是文件名、可执行文件的图标、是否只允许同时刻只能运行一个应用程序、当主线程有误时是否抛出异常、更改工作目录(相对于可执行文件)。然后点>>advanced options>>version info
5.version info-设置版本信息
6.java invocation-配置运行环境
先配置class path,将此项内原有的配置全部删除,然后点“+”找到你生成的jar文件,
然后在上边的general中点浏览按钮,exe4j会自动找到你应用程序的入口-main class。
在下边的advanced options中选native libraries设置,此功能是添加你程序用到的外部jar包文件,这个我一直没用过,因为我做什么事都喜欢集中,所以在程序中用到的所有外部包全整合到jdk/jre里了,这样在给客户安装程序时只要把程序直接给他考过去就可以用了,不用再安装其它东西,他们会很喜欢的哦,毕竟用户不是搞程序设计的嘛。
7.jre-配置jre
在这里配置你的jre版本类型,然后再看>>advanced option>>search sequence
在这里来配置你运行程序所需的jre/jdk的位置,如果你只是打包后本机运行,直接指定到你本机的jre/jdk目录即可,如果你打包后的程序要在别的客户机上运行,而该机又没装jdk,这时我们就要想另一种方法了。从客户的角度讲,拿到手的软件在安装过程中应尽可能少的给客户带来繁琐的安装事项,最好只点一下鼠标就能自动安装。因此,我们要让用户省去安装jdk的麻烦。要解决这个问题,我们可以把安装好的jdk复本放置在最终产品的根目录下,然后在上图中添加这个jdk复本为程序的运行环境
search registty 可以扫描已经安装的jdk/jre,我们选择directory,为程序指定一个jdk目录,只需定位到jdk根目录即可,如上图。 然后>>next
这里要说明一点,用eclipse开发的程序只要一个jre就行了,jdk不用的,所以我是把jre打包进exe运行环境的,这样的话在java version下边的那个允许使用jre beta版的选项就要选中了。
8.preferred vm-选择虚拟机
这个根据具体情况选择,本例为client. 然后>>next
9.splash screen -预载窗体
在这里可以设置你的预载窗体界面,不过好像只认gif类型的图片,status line and version line 可以在position text lines visually预览界面中调整其显示位置。然后>>next,接下来是选择语言界面,根据自己情况选择。然后>>next
10.compile executable-编译生成可执行文件
自动跳转至:
在这里可以点击运行生成的可执行文件,也可以将本次配置方案保存起来以备后用。