pan's record

Java文件生成exe安装文件

  Java的特点之一是平台独立与可移植性,这一特点依赖于其跨平台的运行标准环境JRE。但是当用户的电脑上没有安装jdk或jre时,若强行让用户安装,会严重影响用户体验。为解决上述问题,可将Java的可执行jar包打包成setup.exe文件,直接带着jre,供用户使用。
  这里也插一句,jre在极度精简的情况下,也可能有几十M。当你自己的代码量相对jre而言比较小的情况下,如果还带着jre就有点像配有背包电池的手机。这个时候,你就可以考虑用前端解决问题了,因为前端仅依赖于几乎每台电脑都已经安装的浏览器。

使用软件

  • exe4j:用于将jar包转为exe文件
  • Inno Setup:将上述exe文件打包成软件安装包setup.exe

步骤一:生成jar包

  以Eclipse为例:

  • 点击你的项目,右键Export;
  • 选择导出类型为Runnable JAR file,点击Next下一步;
  • launch configuration选择包含主函数的类文件
  • Export destination选择导出jar包的路径及包名
  • 设置第三方jar包的处置方法,包括以下三种
    • Extract required libraries into generated JAR:把所有的import JAR都拆开来,包含在JAR的各个目录中
    • Package required libraries into generated JAR:把所有的import JAR都包在JAR的根目录下
    • Copy required libraries into a sub-folder next to the generated JAR:把所有import JAR放在JAR外面独立的一个文件夹
  • 点击Finish结束,这个时候你就会在你指定的路径中看见生成的jar包yourjar.jar

export1
export2


步骤二:生成exe可执行文件

安装exe4j

下载并安装:exe4j下载地址
先安装程序,装完后运行,然后用Keymaker.exe生成一个序列号,输入到程序界面中的Change License即可。
名字及单位可以随便填

welcome

jar包转化

1.打开安装的exe4j软件,首页welcome(刚才输入序列号就在这),直接next
welcome

2.选择转换类型
Regular mode:保证程序仍具有跨平台的特性
JAR in EXE:可以把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。
一般还是选第二个吧
step2

3.输入程序的名字和并指定输出目录
step3

4.输入扩展信息
Icon File可勾选,为你的exe文件设置图标,必须为xx.ico文件
选项Allow only a single running instance of the application,勾选上之后,该exe只能运行一个,看你的需求点;
step4

4.1 点击左侧Redirection,在两个位置中可以写记录日志的文件名称,目录为和exe的相同目录;
step4.1

4.2 点击左侧Version info,可添加版本说明;
step4.2

4.3 点击左侧32-bit or 64-bit,来决定你生成的exe是32位还是64位的,勾上Generate 64 bit executeable,注意,勾选这个可以避免不必要的麻烦;
step4.3

5.添加jar包
把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径。基本上你所需要用到的Jar文件都要添加上去,可以逐个添加上去,为了使你的程序能够随处运行,所以还是强列建议你使用相对路径,并且不要使用环境变量,就是“.\yourjar.jar”。添加好你的类路径之后回到上一步去选择好你的”Main Class”即可。
step5
step5.1
step5.2

6.选择运行环境
接下来先选择我们的程序所需要最小最高版本,我们根据自己的情况设置就ok,然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以必须把我们自带的jre指定为首选的运行环境,选择Search sequence
step6

默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了,然后添加我们自己的jre所在的目录路径,这里还是建议使用相对的目录路径,点+号开始:
step6.1

然后点击左侧的Preferred VM,选择Client hotspot VM,然后next。
step6.2

7.选择软件启动画面

该步骤可选,之后就一直默认点next就行了。
step7

  在运行过程中,java.exe依照一套逻辑来寻找可以用的JRE,首先查找自己所在的目录下有没有JRE,其次查找自己的父目录下有没有JRE;最后才是查询Windows的注册表。
  现在我们的程序可以在任意的计算机上执行了,可是缺点是致命的,比方说我的程序才160K,可是不论走到哪里都要背着几十M甚至一百多M的JRE,未免有点小题大做吧,其实作为我们的私有的JRE,好多内容都是可以抛弃的。可以清理几个库文件里面不需要的内容,这需要仔细的整理,会很费功夫。
  清理完后,可以通过下面这个棒棒的软件来进一步瘦身了。


步骤三:生成setup.exe安装包

安装inno setup

下载并安装:
inno setup中文版下载地址中文版记得别装附加软件!!
inno setup英文版下载地址

打开后点击文件>新建,就可以开始了
step10

这里可以自定义软件的一些附加信息,填完后下一步
step10

按照默认的直接下一步
step10

这一步是关键,首先选择刚才你用exe4j生成的.exe文件,然后在下面添加文件夹。将你包含你的.exe文件的文件夹选中,文件夹里有各种你这个程序运行起来的文件,特别是jre!!!之后就可以无脑点下一步了。
step10

🐶 您的支持将鼓励我继续创作 🐶