多个exe打包成一个exe安装程序,安装后可一键启动多个服务
博客帮助我解决了很多问题,于是想把自己遇到的问题记录下来希望对他人有所帮助。有些帖子写得很是简单,一旦忽略了某个关键细节,就可能看不懂了,就要花费更多的时间才能解决问题或者另寻良方,所以我自己尽可能写的细致。也确实是因为解决问题的过程投入了大量的时间和心血,如果解决了问题就完事儿,不做总结梳理的话,总觉得对不起那些加过的班和熬过的夜。
需求:我们的软件由2个java服务和1个python服务组成,要求给到用户,无需重新安装部署java、python运行环境及依赖包,直接点击桌面快捷方式即可启动所有服务,正常使用软件。
解题剧情:(1)好不容易琢磨,查资料,实践,分别搞定了jar包及其依赖环境打包成exe和python及其依赖环境打包成exe,以为完美收工,没想到进一步的需求扑面而来,要求把3个exe和依赖包打包成一个exe安装程序,给到用户,无需重新安装部署java、python运行环境及依赖包,直接点击桌面快捷方式即可启动所有服务,正常使用软件。这些选手不讲武德,我劝他们耗子尾汁,毕竟我是个测试人员。
(2)二话没说就是个上网查解决方案。有人仍了个软件名称说,用这个可以,没有步骤,没有截图,我K,无情!!!有人说简单,自己写个程序实现,要毛的软件,够狠!!!终于查出了点眉目,使用绑定机,可以把两个exe绑定成一个exe,点击一个exe可以启动两个服务,但我的需求是一键启动3个,可惜绑定机只能绑两个,就差一点点呀!哎...后来突然想到,可以先把前两个exe合成一个exe,然后再把合成的exe和第三个exe合成一下不就行了吗?哈哈哈,机智的一匹。结果这么干,一键启动时提示找不到java运行环境,我败了,太天真了,天底下哪有这想当然的好事,还得想破脑袋另辟蹊径。
(3)查来查去实在解决不了,准备用批处来启动3个exe,然后把bat作为主启动程序打成安装包,结果打安装包的时候出事了,主启动程序只支持选择exe,眼看我这条线索又断了,我一拍桌子站了起来,好,你TM不支持bat,那我把bat转成exe总行了吧?其实我就是赌气这么猜想的,能不能转咱也不知道。上网一查,还真有软件把bat转成exe,哈哈哈,磕磕绊绊我简直又是机智的一匹!实践证明此路可通罗马,完美!!!
一、 用exe4j 软件把jar包打包成exe可执行程序(点击蓝色文字可跳转详情)
二、用pyinstaller把Python代码及其依赖环境打包成exe程序(点击蓝色文字可跳转详情)
三、用批处理实现一键启动多个exe程序,再用Bat To Exe软件把批处理程序转换成exe程序
- 写一个一键启动3个exe的批处理(如:“jdxxk.bat”),双击运行批处理验证启动效果。
注意:批处理要自动获取所启动的exe程序的路径(按截图中写即可),否则打包成安装程序后发给别人运行时会出现无法找到运行程序的问题。 - 下载并安装Bat To Exe软件,根据截图步骤操作把bat程序转换成exe程序,双击运行exe程序检查运行效果。
下载Bat To Exe软件软件:https://pan.baidu.com/s/1Ydq4tiaRd5z9YiiliVigkA
注意:其他3个exe文件必须和转换后的exe放在同级目录下,否则运行报错。
四、用inno setup软件将批处理文件转换后的exe可执行程序及其依赖环境打包成exe安装包
- 安装并打开inno setup软件,关闭Welcome窗口,按键盘“Ctrl+N”,创建一个新脚本,点击Next。
- 输入应用程序的名称,如:“jar2installer”,其他可根据需要设定,点击Next-Next。
- 点击“Browse”,选择安装后软件的主执行exe文件,如“D:\output\jartoexe.exe”;点击“Add Folder”,选择软件运行相关依赖文件的文件夹,如:“D:\output”,(output目录中包含软件运行依赖的jre),点击Next-Next直到Compiler Settings页面。
注意:其他3个exe文件必须和主程序jdxxk.exe放在同级目录下,否则运行报错。
- 设置生成安装包的存放路径,如“D:\”;设置生成的安装包的名称,如“jar2installer”,设置生成的安装包的图标(可不设置图标),点击Next-Next-Finish。
- 点击【是】,开始编译脚本。
- 点击【是】,设置保存脚本的路径和名称(保存后可以复用,也可以点击【否】不保存)。
- 保存好脚本后,脚本会自动运行,运行完成后就生成了exe安装包。双击exe就可以像我们平时下载的软件一样安装软件了。
原文作者:我将粉碎一切
原文地址: https://blog.csdn.net/qq_43472652/article/details/115906204
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/qq_43472652/article/details/115906204
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
相关文章