【Java】游戏打包成exe

游戏的打包其实是非常复杂的,想要把拼图游戏写好之后发给朋友玩一下,最简单的方式是给它装个 JDKIDEA

但是这样太 low 了,最好的办法就是把游戏打包成exe安装包 让你的朋友直接安装就行了。

在打包的时候,有一些元素是我们需要考虑的因素。

一、游戏打包exe要考虑的元素

1、一定要包含图形化界面

例如我们之前写的学生管理系统、双色彩票系统,那些代码是不行的,因为在那些代码中我们没有写图形化界面的代码,就算你打包了,用户也没有地方操作。

2、代码要打包起来

3、游戏用到的图片也要打包起来

4、JDK也要打包


二、游戏打包exe核心步骤

1、把所有代码打包成一个压缩包,Java的压缩包的后缀名是 jar ,因此Java的压缩包我们一般也会称之为:jar包

2、把jar包转换为exe安装包

PS:这个exe安装包不是最后一步,因为它里面没有代码,没有图片,也没有Java的运行环境,因此我们还需要额外再做一步

3、把第二步的exe,图片,JDK整合在一起,变成最终的exe安装包

整合完毕后,就可以把第三步的安装包发给朋友就行了,朋友安装就行了。


四、准备软件

1, Idea:将代码打包成jar包(java形式的压缩包)

2, exe4j:将jar包转换成exe的工具。

3, innosetup:将游戏用到的图片,Java的运行环境和第二步打包的代码,组合成最终的安装程序。

**备注1:**exe4j和innosetup安装非常简单,傻瓜式下一步即可。

**备注2:**exe4j支持的JDK版本是8~11,其他版本的JDK不行,建议安装JDK11版本(这个JDK11在安装之后是不需要配置环境变量的,直接安装就行了)。但是由于JDK11体积太大,因此请大家自行去官网下载。

**备注3:**64位的操作系统用exe4j_windows-x64_6_0_2.exe

32位的操作系统用exe4j_windows_6_0_2.exe

**备注4:**打开我的电脑,右键空白处,点击属性,在弹出界面的中央就能查看自己电脑是64位的还是32位的。


五、软件下载地址

在《拼图游戏打包成exe》中


六、软件安装

1, 确保idea已经安装完毕

2, 安装exe4j

3, 安装innosetup

傻瓜式安装,直接下一步即可,但是要记住安装路径。


七、代码改写

代码中所有图片用到的路径需要把模块名删除,改写之后如下:

img

在不同的情况下,相对路径的相对位置是不一样的。

在IDEA中是相对于当前项目而言的,因此我们需要将模块名给加上。

img

但是当我们图片打包成 exe 之后,它的相对路径就不是相对于当前项目了,而是相对于当前本身自己。

我们可以来看一下将游戏打包成exe,并且安装完毕后文件夹里面的东西。

img

游戏的启动图标就是:puzzlegame.exe

它所用到的所有图片都是在上面image文件夹中,因此当我们安装完exe软件后,它的相对路径就是相对于自己而言的。


八、打包步骤

第一步:代码打包成jar包

1, 点击File,再点Project Structure。

2, 点击Artifaces。

3, 下方图片箭头指向位置应为空白,如果有其他内容,可以选中之后,点击减号删除。

img

4, 选中左侧的Artifacts ,

点击中间上方位置的+

点击JAR

点击From modules with dependencies…

如下图所示:

img

5, Module:选择要打包的项目。

img

6,Main Class:点击红框最后的那个小图标,项目中是哪个main方法所在的类去启动项目,这里就选择哪个类。我的项目是由app里面的main方法启动的,所以我就选择App

img

7,设置 META-INF/MANIFEST.MF。

点击箭头指向的图标进行设置。

img

8,选择当前模块

点击OK

img

9, 此时这里的路径就是模块所在路径,点击OK。

img

10, 如果没有弹框报错,第十步可以跳过,直接看十一步。

如果出现弹框报错,表示当前模块下已存在META-INF文件夹了。可以在本地找到已存在的META-INF文件夹,右键点击DELETE删除即可。

查找方式如下:

右键模块点击open in

点击Explorer

在模块里面找到META-INF文件删除即可。

img

11, 如果没有报错,就出现一个puzzlegame:jar的提示。

点击右下角的OK。

img

12, 在idea主界面上方,点击Build里面的Build Artifacts。

如果是灰色的不能按,请确定在上面第一步~第九步有没有配置好jar包的信息。

如果已经配置好了jar的信息,此处就可以正常点击。

img

13, 在主界面正中央。

选择puzzlegame:jar。

再选择Build。

idea会帮我们生成jar包。

img

14, 等页面右下角的进度条结束,jar就已经生成完毕。

img

15, 点击File,再点Project Structure。

点击Artifaces。

在下图红色框中的路径下,可以找到生成好的jar包。

img


第二步:整合资源文件

1, 将第一步创建好的jar包拷贝到桌面上。

2, 在桌面上新建一个文件夹resource。

img

3, 将《拼图游戏》中的image文件夹粘贴到resource文件夹当中。

此时在桌面中的resource文件夹下的image文件夹下,就会看到游戏里面用到的所有图片。

img


第三步:将jar包打包成exe

1, 双击打开安装好的exe4j.exe,注册软件。

点击下面的Enter License

img

2, 输入用户名,公司名和注册码后点击ok

用户名,公司名随便填,最好都是小写字母。

注册码:L-g782dn2d-1f1yqxx1rv1sqd

img

3, 注册完毕之后点击右下角的next

备注:exe4j.exe只识别JDK8到JDK11,如果安装时出现弹框报错,请检查JDK版本,资料文件夹中给大家提供了JDK11,有需要可以安装。(黑马程序员阿玮老师出品)

img

4, 选择JAVA转EXE。

点击右下角的next

img

5, 输入名称puzzlegame

输出保存exe的路径,建议选择到桌面上。

点击右下角的next

img

6, 选择以图形界面的形式启动游戏

输入应用名称,puzzlegame

点击高级设置Advanced Options,选择32-bit or 64-bit

img

7, 勾选Generate 64-bit executable

表示要生成64位的exe安装包,如果未勾选默认生成32位的安装包。

点击右下角next

img

8, 然后一直下一步,一直出现如下界面

在本界面开始jar包并以及配置启动类。(黑马程序员阿玮老师出品)

img

9, 第一行,VM参数配置的地方加上:-Dfile.encoding=utf-8

img

10, 点击右侧绿色的+,添加jar包

img

11, 添加jar包

img

12, 选择桌面上的puzzlegame.jar。

点击下面的打开。(黑马程序员阿玮老师出品)

img

13, 检查路径,如果无误点击右下角的OK

img

14, 选择项目启动类

img

15, 因为程序主入口main方法写在App类中,所有选择app,并点击OK。

img

16, 本页面中,一共修改了三处。

三处全部操作完毕。点击右下角的next

img

17, 填写最小启动的JDK版本。输入1.8

配置exe加载的JDK,选择第一个。

img

18, 点击+

https://img-blog.csdnimg.cn/20200204003959383.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3NzAxMzgx,size_16,color_FFFFFF,t_70

19, 选择Directory

下面输入.\jdk

(注意:输入点杠jdk,都要是英文状态下输入)

点击OK

img

20, 再次点击+

img

21, 选择Directory

下面输入.\image

(输入点杠image,都要是英文状态下输入)

点击OK

img

22, 点击右下角的next

img

23, 选择Client VM

点击右下角的next

https://img-blog.csdnimg.cn/20200204004404491.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3NzAxMzgx,size_16,color_FFFFFF,t_70

24, 然后一直下一步,最终出现如下界面

点击右下角的Exit退出。

img

25, 点击Exit后,会提升是否需要保存刚刚的配置信息,可以点击Yes,并选择一个路径进行保存。

img

26, 如果第三步选择的exe保存的路径是桌面,那么在桌面上

就能看到生成的puzzlegame.exe文件了。

四个文件分别为:

左一:刚刚用jar生成的exe文件。

左二:idea生成的jar包

左三:游戏用到的资源图片

左四:刚刚用exe4J设置完毕之后保存的信息。

img


第四步:将jdk、资源文件、jar包转换后的exe三者再次打包成最终的exe

刚刚,我们仅仅是把java代码变成了exe。下面我们要把游戏中依赖的资源文件,也就是使用到的所有图片,还有JDK三者再次打包成最终的exe,这样在没有jdk电脑环境下也能运行。

1,打开inno setup

img

2,在欢迎页面点击右下角的关闭

img

4, 点击左上角的File

再点击NEW

img

5, 点击next

img

6, 输入应用名称puzzlegame

点击next

img

7, 不修改任何东西,直接点击next

img

8, 点击这里,选择桌面上已经生成好的puzzlegame.exe

img

9, 点击Add folder

img

10, 选择桌面的resource,再点击确定。

img

11, 如果出现下面弹框,则点击是。

如果没有出现也没有任何关系。

img

12, 再点击 Add file(s)…

img

13, 选中桌面的puzzlegame.exe,再次添加一次。

点击下面的打开。

img

14, 在本页面中一共设置了三处地方。

全部设置完毕,点击next。

img

15, 默认不用选择,点击next

img

16, 默认不用选择,点击next

img

17, 选择语言,还是默认,点击next

img

18, 选择输出路径,还是选择桌面。

输入最终安装包的名字,不能跟已有的puzzlegame重名。

所以我写setup,再点击右下角next

img

19, 默认点击next

有部分同学电脑不显示这一步,也没有关系。

img

20, 完成,点击finish

img

21, 配置到最后一步了,脚本文件,到这里会弹出问你是否马

上编译,选择否,先把脚本写好再自己编译。

img

22, 上面红色箭头处添加一行脚本。

#define MyJdkName “jdk”

添加前:img

23, 添加完毕之后,如下图所示

img

24, 往下拉,把有红色框起来的这一行删掉

img

25, 在上一步删除位置添加一段行的文字

Source: “自己本地JDK路径*”; DestDir: “{app}{#MyJdkName}”; Flags: ignoreversion recursesubdirs createallsubdirs

千万注意:这段文字不要直接复制。根据自己电脑中JDK的安装位置进行修改,添加完毕之后如下图

img

26, 点击上方的绿色按钮开始编译。

https://img-blog.csdnimg.cn/20200204010100205.png

27, 此时会询问,是否需要保存。

可以点击是,选择一个位置保存一下刚刚修改之后的结果。

img

28, 然后等待绿色滚动条结束

img

29, 当绿色滚动条结束后,会自动安装setup.exe文件。

此时可以点击否,先不安装。

在桌面上,会多了一个setup.exe文件和一个后缀名为iss的文件

setup.exe:打包成功的游戏安装包。

iss文件:就是刚刚设置的脚本文件。

img

30, 现在就可以把这个exe文件发给你的好基友了,他的电脑

上不需要安装JDK,直接双击这个安装包就可以玩游戏了。

在安装的时候可以选择安装路径。

还可以在桌面生成快捷方式。


九、注意点

1, 安装完毕之后,可以到安装目录去找puzzlegame.exe

双击就可以玩游戏了。刚刚桌面上的5个文件可以全部删除。以后双击puzzlegame.exe就可以玩游戏了。

img

2, 如果游戏运行之后,有效果但是无图片,或者部分图片无

法加载。如下图所示:此时背景图片无法加载。

img

3, 修改步骤一:

检查安装目录下image文件夹中是否有该图片。如果没有将缺少的图片粘贴进去重新运行游戏。(黑马程序员阿玮老师出品)

修改步骤二:

检查代码,图片的路径需要把模块名删掉。

img

4,代码修改后,需要重新生成exe安装包,重新安装游戏。

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值