目录
前言:...
低语(踩坑篇):
1.打包jar后在命令行窗口运行jar包不成功
2.打包exe时,未在Search sequence设置中为exe加一个相对路径获取jre
3.在找jdk16文件夹中的jre文件夹时找不到
正文(解决篇):
资源提供(exe4j 、innosetup)
IDEA打包可执行文件jar
exe4j将可执行jar包转换成exe应用程序文件
打包jre和exe成为安装程序的工具
前提准备:打包前,exe应用程序和电脑安装的jre拷贝到同一个目录
前言:
本人是java小白,目前正在学习java中,在此尽可能分享我的学习经历,相信大家都想学习打包自己写的代码生成游戏供自己和他人娱乐,那么就看我这篇文章吧,相信你会get到的,并且有什么不明白的或者问题都可以关注本人或者评论区问答,有问必回,大家一起讨论一起学习。
这个文章是我在打包成功,发送给我几个朋友试运行成功后第一时间发表出来的。
低语(踩坑篇):
1.打包jar后在命令行窗口运行jar包不成功
多方查找后发现是因为我IDEA使用jdk18,而电脑系统使用的是jdk16,最后听取前辈意见下载了java8,全部更替了jdk1.8,毕竟公司使用的都是java8。(总结:IDEA和系统的jdk要使用一个版本,不同版本识别会有问题。)
2.打包exe时,未在Search sequence设置中为exe加一个相对路径获取jre
我们执行最后一大步打包jre和exe是要保证安装程序在别人电脑下载得到应用程序后,应用程序能在别人电脑没有jre环境下运行,这就要通过相对路径获取与exe一同打包的jre环境。而我在打包时未在Search sequence设置中为exe加一个相对路径获取jre导致我朋友在运行时保错,找不到jre/jdk提供exe运行的环境。
3.在找jdk16文件夹中的jre文件夹时找不到
查询发现,有人说是java8之后舍弃了jre文件夹,然后我根据别人说的办法执行了一段代码,在jdk中生成了jre文件夹,但是最后也不知道有没有用,因为犯了第二个错误,再然后就直接摒弃了jdk18和jdk16的配置,下载了jdk1.8,把IDEA和系统的配置都更改为了java8。
正文(解决篇):
资源提供(exe4j 、innosetup):
exe4j —— 用于将可执行jar包转换成exe应用程序文件
innosetup —— 用于将exe程序文件和jre打包在一起生成安装程序的工具
百度网盘-共享资源文件夹:
百度网盘链接:https://pan.baidu.com/s/1igRDoUss0pOIiwK-biEyug
提取码:5525
IDEA打包可执行文件jar
1.打开在IDEA界面,我选择的是一个最简单的弹球小游戏作为示例
2.打开左上角file-Project Structure
3.点击Artifacts-JAR-From modules with dependencies...
4. 首先确定模块是否是要打包的类所在的模块,选出主类
(注:此示例只有一个类,并没有诸多的工具类、子类...,因为简单作示范用)
5.首先自定义可执行jar包名字,图示中第二步选上,然后点击jar包,最后点击下面主类右边的文件选择
(注:Output directory处是jar包打包完成后的输出目录,后续要在这里找到jar包)
6.点击主类右边的文件选择,点击要打包的主类
最后点击Apply-ok,关闭Project Structure界面
7.点击Build-Build Artifacts...
8.点击弹球小游戏.jar-Build,即可创建出jar包
9.运行可执行jar包
在第五步中可以找到jar包的所在位置,然后点击搜索栏输入cmd接着回车键,在命令行窗口中输入:
java -jar Game.jar
我的jar包打包后名字保持着模块Game的名字(我也不太清楚,但是不影响其它)
至此,打包可执行jar包成功
exe4j将可执行jar包转换成exe应用程序文件
10.打开exe4j,点击下一步
11.勾选"JAR in EXE" mode
12.自定义exe应用程序文件名字,exe应用程序打包后的输出目录
注:输出目录要记好,后续需要。
13.必选:选择GUI、自定义名字、最后两个默选择
14.选择Generate 64-bit executabl,确保X64位可以使用
15.点击next(下一步),来到5.Java invocation界面
16.按图示说明,找jar包可以回到第五步查看jar包所在目录
注意:第一小步要输入:
—Dfile.encoding=utf-8
找jar包所在目录,可以回看第五步
17.再次添加主类
18.只需填写最低版本的jdk即可,1.7就可以
19.点击Search sequence,设置Jar包的运行环境,再加一个相对路径获取jre(重点)
注:因为这个程序是打算安装到没有Jre环境的电脑上的,所以搜索的jre路径不是自定义的环境变量,删除里面的Serach sequence默认路径,添加了jre相对路径,这个很重要,一定要采用相对路径,不然会报找不到运行环境。相对路径为.\jre,可以把生成后exe拷贝到跟jre同一个文件夹里就能运行了前三项是默认就有的表示从环境变量中获取jre,
第四项自定义配置的项:表示从与Jar同一级的jre目录中获取运行环境(为下一步打包jre和exe做说明)
20.接着一直点击next(下一步)来到10.finished界面按图示运行exe应用程序文件检验
21.如图示运行成功,即打包exe应用程序成功
22.推出exe4j
23.找到exe应用程序的输出目录,测试exe应用程序的运行
注:可以回看第十二步查看exe应用程序文件的输出目录
运行成功,至此exe应用程序文件打包成功完成
打包jre和exe成为安装程序的工具
不学习java的一般电脑可能没有Jre的环境运行exe,所以还需打包jre环境。
前提准备:打包前,exe应用程序和电脑安装的jre拷贝到同一个目录
如图所示,刚才生成的exe文件需要跟jre文件夹同一个目录才能运行成功,不然找不到运行环境,会报找不到运行环境出错的。
24.打开innosetup,File-new
25.点击next(下一步)至如下图示,自定义名字
26.设置安装当前程序时默认安装路径以及安装目录名字
注:这个是当你把安装程序发送别人后,别人点击安装后,在电脑中会生成这个目录,目录中有这个文件夹(而exe应用程序和jre都在这个文件夹中)
27.选择要打包的exe包以及打包环境jre所在的的目录(不是jre目录)
28.一直点击next(下一步)在图示界面选择封装好的安装包的路径以及自定义名字
注:这个路径是你打包jre和exe生成的安装包的放置位置,自定义安装包的名字(可能图片和最后演示的图片文件夹名字有出入,是因为最后根据个人喜好我更改了文件夹名字)
29.接着点击next-finish-是,脚本运行,运行结束会出现以下
这个时候点是,会出现保存文件夹的界面,保存脚本,放在自己能记得的地方
30.图示为按照第二十八步找到的exe安装包
31.最后点击安装包,下载完成后,会找到第二十六步生成的文件夹
32.按图示找到exe应用程序点击即可运行,在安装时也可以勾选生成桌面快捷方式
这个结果是我和朋友共同亲测的,保证可用
至此,所有打包圆满结束,可以给你的小伙伴发送游戏玩了