打包exe_java

news/2024/10/5 17:18:30

主要实现步骤

1, 将代码打包成jar包。

2, 整合资源文件

3, 将jar包打包成exe

4, 将jdk、资源文件、jar包转换后的exe三者再次打包成最终的exe。

准备软件

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

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

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

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

备注2:exe4j支持的JDK版本是8~11,其他版本的JDK不行,所以我也给大家提供了JDK11版本。

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

32位的操作系统用exe4j_windows_6_0_2.exe

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

软件下载地址

在《day18-API》--- 《资料》--- 《拼图游戏打包成exe》中

软件安装

1, 确保idea已经安装完毕

2, 安装exe4j

3, 安装innosetup

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

代码改写:

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

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

img

打包步骤:

第一步:代码打包成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安装包,重新安装游戏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/54755.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

【信息收集】思维导图

本系列转载自"freebuf社区",侵删

AI自动化副业创收班手把手带你提升副业收益

副业创收已经成为行业趋势,在当前经济形势下,许多人面临着行业裁员的不确定性。为了增强个人的抗风险能力,寻求一份副业已经成为一种重要的趋势。这不仅是经济上的补充,更是对自由与独立的一种追求——它应让你自主掌控,不被外界束缚。通过精心打造的副业,你不仅可以灵活…

【信息收集】移动资产收集

一、微信小程序支付宝小程序二、app软件搜索一、微信小程序支付宝小程序 现在很多企业都有小程序,可以关注企业的微信公众号或者支付宝小程序,或关注运营相关人员,查看朋友圈,获取小程序。 https://weixin.sogou.com/weixin?type=1&ie=utf8&query=%E6%8B%BC%E5%A4…

算法专项—新手村

纵有疾风起;人生不言弃!根据对码蹄集新手村的刷题经验;此片文章对python基本的语法进行简单的总结!一:python输入输出 1、python 中使用print函数输出语句;默认print输出会打印回车;在python中双引号和单引号的作用是相同的! print("gsupl") print("gsup…

算法专项-码蹄集 新手村

纵有疾风起;人生不言弃!一:python输入输出 1、python 中使用print函数输出语句;默认print输出会打印回车;在python中双引号和单引号的作用是相同的! print("gsupl") print("gsupl","yyds",sep=****)#用****分割 print("gsupl"+&q…

智慧监管:地理信息与遥感技术驱动下的社会治理新纪元

在信息化浪潮席卷全球的今天,智慧监管已成为推动社会治理现代化的关键力量。本文将深入剖析智慧监管的概念、技术基础、应用场景及其对社会发展的深远影响,探讨如何在新时代背景下,利用地理信息与遥感技术构建更加智慧、高效的监管体系。智慧监管:定义与核心理念智慧监管是…

CVE2024-4577 成因梳理

CVE-2012-1823 提到PHP-CGI有关的漏洞 就不得不提起CVE-2012-1823 该漏洞利用php-cgi将用户传入的cgi数据中的query_string部分的-后参数当做了 脚本的处理参数处理 攻击者可以利用-d参数修改配置项 实现远程命令执行的效果 也可以-i读出源码 当时这个漏洞被apache修复了 修复的…

sipp模拟uas发送update

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 但是fs在处理update消息时候有BUG,为了复现问题,使用sipp模拟uas,发送update并发送DTMF码。 本文档记录sipp的配置方案。 环境 CentOS 7.9 freeswitch 1.10.7 sipp.3.6.2 问题描述 在与运营商对接的过程中,运营商内部…