侧边栏壁纸
博主头像
术业有道之编程博主等级

亦是三月纷飞雨,亦是人间惊鸿客。亦是秋霜去叶多,亦是风华正当时。

  • 累计撰写 99 篇文章
  • 累计创建 50 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

将jar打包成不依赖系统java环境运行的exe程序

Administrator
2021-11-22 / 0 评论 / 0 点赞 / 166 阅读 / 20003 字

写在前面

本文介绍了如何将一个可运行的jar打包成正常的exe,像正常程序一样安装使用,不需要安装或配置java运行环境,与系统的java环境隔离。

一、准备工作

前提准备:
exe4j
Inno Setup Compiler
jdk11
可运行的jar

1、将可运行的jarjdk11的解压缩包放在同一个目录
2、将目录中的jdk11改名为jre,就像这样
准备

二、将jar打包成exe

1、安装并启动exe4j程序
2、直接跳到第二步,选择
选择打包成exe-1
3、指定基本的文件信息
指定基本的文件信息-2
4、指定exe的信息
指定exe的信息-3
5、点击Executable info>>32-bit or 64-bit,设置运行版本,这里默认都是64bit
指定jdk版本-4
6.1、增加jar
增加jar-5
6.2、选择要增加的jar
增加jar-6
7、指定可运行的mian class
指定可运行的class-7
8、指定运行的jdk版本
运行jdk版本-8
9、删除默认环境变量
删除默认环境变量-9
10、指定jre目录
指定jre目录-10
11、指定完成
jre指定完成-11
12、指定vm模式
选择vm模式-12
13、一路点下一步,当看到下面这个页面的时候,已经在你前面指定的目录生成了exe文件
指定目录生成exe保存-13

注意:

  • 使用没有激活的exe4j打包完成的exe启动时会出现一个弹窗。
  • 这个exe它没有包含jre,只是把jar包封装了一下。要想让别人使用,还要把jre发给别人,并且保持相对路径不能变。比较麻烦,下面使用inno setup在封装一下,把jreexe文件封装到一起。

二、将exe打包成Install包

1、安装并打开inno setup
2、点击新建,出现下面的弹窗,点击下一步
新建-1
3、设置打包的exe基本信息

Application name:程序名
Application version:版本号
Application publisher:发布人
Application websit:网址

设置打包基本信息-2
4、设置程序文件夹,直接用默认的就行,点击下一步
设置程序文件夹-3
5、设置打包源文件的位置,以及要运行的环境(添加之前的jre文件夹)
设置打包源文件-4
6、选择安装的方式,我这里选择为当前用户安装,并且在安装的时候可选安装方式
设置安装方式-5
7、设置打包后的文件输出的位置,这个程序icon图标安装密码可以不设置
设置文件输出位置-6
8、会出现下面一个脚本化的东西,有日志在输出,等待输出完成。
脚本输出-7
9、完成后生成2个东西,一个是robot.iss脚本文件,一个是robot.exe,这个exe现在是安装版的,需要安装到电脑上才能运行。
输出文件结果-10

注意:到这里运行新生成的robot.exe安装后也是不能运行的,会报java运行环境找不到,需要修改下robot.iss文件脚本的一行代码。

运行环境异常-8
10、用inno setup打开robot.iss脚本文件,找到[files]下的第二个source,将DestDir:"{app}"改为DestDir:"{app}/jre"(通过第8步的图与当前第10步的图对比也可以看出来)
修改脚本再次输出-9
11、修改完之后点击左侧上方的保存按钮,然点击运行按钮,运行一下,生成新的robot.exe即可安装运行。这个安装包大概169m左右。

注意:

为了保证程序源代码安全,可以使用ISCrypt.dll作为inno setup的加密项(默认是不带的,它的获取和使用说明,见官网描述),我已经看到如何在exe4j输出的exe文件中抽取源代码的案例了。

个人公众号

0

评论区