(超详细讲解)实现将idea的java程序打包成exe (新版,可以在没有java的电脑下运行,即可以发给好朋友一起玩)

目录

实现打包到exe大概步骤

工具准备

1.将java程序文件打包成jar文件

2.准备好jre文件

3.使用exe4j软件打包好

4.最终打包


实现打包到exe大概步骤

1.打包需要满足的条件:将java文件转成jar文件的工具exe4j、

以及需要满足jdk1.8以上(因安装exe4j软件需要1.8版本以上)

2.将java打包成jar文件

3.准备好jre文件

4.使用exe4j生成exe文件

工具准备

需要用到的工具或者教程放在下面,需要的自取

1.工具exe4j下载链接:ej-technologies - Java APM, Java Profiler, Java Installer Builder

exe4j版本应该都可以,我这里用的是6.0的。

ex4j的大概使用 教程:http://t.csdnimg.cn/js5di

注意:安装好exe4j后需要登录激活不然打包完成会报错,我卡在这里一段时间

登录激活教程:http://t.csdnimg.cn/js5di

2.jdk1.8下载以及安装这里都讲解的很详细可以好好看看: http://t.csdnimg.cn/a82XV

3.我这里用的是ide,如果是用eclipse的话参考这个文章:Eclipse导出jar项目文件用exe4j打包成可执行的.exe软件

下面开始讲解打包流程

我这里以打包一个拼图小游戏为例

1.将java程序文件打包成jar文件

打开要打包的程序

创建新项目

第一步

第二步,选择Maven,然后选择1.8的jkd,然后点next

命名自己取

第三步,去找到要打包的程序的src文件

不会找src的这样找

复制他所在的路径

然后在文件管理器这里搜,就可以找到了

找到src文件后,把src里面的内容复制好ctrl+c

然后回到Maven项目这里,将复制好的内容粘贴到java里面

点ok,然后点add

然后你运行一下看看能不能运行,不能运行说明程序有问题

第二种就是,如果有素材图片啥的,加载不出来,这个情况请继续往下看

如果有素材的程序,请看这步

因为我这个程序的素材是放在src同一文件里面,因此我把素材拷贝到Maven项目这里就可以了

拷贝素材

导入成功就这样

接下来就是转成jar文件

找到右上角的Maven然后打开

打开是这样的

如果没有test就给他屏蔽掉,然后导包出错

屏蔽完成就可以导包了

选中package后点绿色的启动按钮

成功是这样的

当然如果你忘了屏蔽或者其他原因可能有警告

解决办法就是先将target先给他删除,然后屏蔽一下test,再次打包看看还是不行评论区发一下大家一下看看啥原因。

导包完成,把jar文件放好,把jar文件复制到直接拖出来也行桌面,方便等下打包

导出jar文件效果,不然压缩软件图标不一样放心

2.准备好jre文件

jre文件就是相当于给新电脑配置了java运行的环境,所以到拷贝一份放到打包好的程序才能运行

所以jre是不可或缺的。

那么如何查询当前电脑安装的Java/JDK版本的方法(查看Java/JRE版本号)呢

方法如下

1.电脑键盘同时按住Windows+R按键,弹出运行程序,输入cmd并确定

2.在黑框控制台中输入 java -version,即可查看Java版本号

注意空格不可以省略 

查找jre位置,jre的安装如果是上面的流程来一般是这个路径C:\Program Files\Java

其他安装默认一般也是,如果不是再找找,或者网上搜一下教程

找到jre文件同样将他复制一份到桌面这里方便打包

3.使用exe4j软件打包好

前面要做好这几个,下载并安装好exe4j,并且已经登录激活,如没有请爬楼回到工具准备那里做好。

那么开始打包

打开exe4j

第一步直接next

第二步

第三步

第一个文本框填打包名字,可以随便写

第二个是打包好要放的路径,这边统一放在桌面吧,方便打包

第四步

这里填的是最终打包好的exe命名,Icon File是设置图标的,如果想让exe有图标可以自己弄一个,

设置图标地方参考一下:在线制作ico图标 | 在线ico图标转换工具 方便制作favicon.ico - 比特虫 - Bitbug.net

我这里也设置一下

这里容易漏,如果是电脑是32位直接next,如果是64位点圈中的地方,进去勾选64

来到第五步

点绿色加号

然后这里的目录路径放的是刚刚打包好的Maven文件

然后选择运行的main函数相当于

我这里运行的类放了App类这里,所以这里选择App,一般只有一个实现类的

第六步

跟着填就行了

选中Search sequence

把这两个删除

然后点绿色加号

路径是填jre的路径,刚刚已经把jre复制到桌面了。

点ok然后next

最后一步

后面一直next

最终效果,next完然后桌面就有exe文件了

4.最终打包

跟着上面操作会得到三个文件,

新建一个文件夹将他们放在一起就可以了,Maven文件不用放一起可以删除了。

差点漏了,就是记得把素材也放一起

最终效果

弄完,运行一下exe看看是否能运行正常能运行就可以发给朋友玩耍了。

5.打包错误

第一种,我遇见这个情况,原因是没用1.8的jdk来打包jar文件导致

后面安装了1.8重新打包就可以了

第二种报错

这种情况就是上面没有激活登录exe4j所导致,工具准备那里有激活登录教程。

其他视频教学,我也看了多次的打包教学视频放在这里,如果上面没怎么看懂可以看看这个视频

如何将idea的java程序打包成exe (新版,可以在没有java的电脑下运行)

本文章到这里就结束了,内容如果有错误的或者有什么不懂的可以在评论区交流

最后,如果对你有帮助可以点关注点赞,谢谢支持。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基本数据类型和引用类型

计算机内部数据以二进制的形式存储和运算的,一字节表示8位(在二进制里面8位长),一个汉字是两个字节,也就是16位。计算机型号不同其字长不同。 二进制位(计算机存储数据最小单位)-CSDN博客 二进制 八进制 十进制 转换_二进制怎么补齐位数-CS…

Embedding技术学习

可能很多人并没有关注Embedding技术,但实际上它是GPT非常重要的基础,准备的说,它是GPT模型中理解语言/语义的基础。 【解释什么是Embedding】 对于客观世界,人类通过各种文化产品来表达,比如:语言&#x…

如何快速提取出一个文件里面全部指定类型的文件的全部路径

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 打开工具,切换到第五个模块,文件批量复制模块(快捷键:Ctrl5) 点击右边的“搜索添加”按钮&#…

unordered系列关联式容器底层哈希结构的介绍,哈希表的模拟实现(哈希冲突的解决方法采用闭散列线性探测)

目录 前言 unordered系列关联式容器之所以处理数据的效率比较高,是因为底层使用了哈希结构,哈希结构的优点是:不经过任何比较,一次直接从表中得到要搜索的元素,通过某种函数(hashFunc)使元素的存储位置与它的关键码之…

mapreduce | 自定义Partition分区(案例2)

1.需求 统计每个手机号消费总金额,按照消费金额降序排序,最终联通、电信、移动分别写入不同的文件。 130、131、132(联通) 133(电信) 135、136、137、138、139 (移动) 手机号,消费记…

sql-行转列2(转置)

行转列的常规做法是,group bysum(if())【或count(if())】 例题: 表table如下: DDateshengfu2015-05-09胜2015-05-09胜2015-05-09负2015-05-09负2015-05-10胜2015-05-10负2015-05-10负 如果要生成下列结果, 该如何写sql语句? DDate胜负20…

【计算机网络】-性能指标(速率、带宽和吞吐量)

速率、带宽和吞吐量 信道(channel): 表示向某个方向传输信息的通道,一条通信线路在逻辑上往往对应着一条发送信道和接收线道 速率(speed): 指的是连接到网络上的节点在信道上传输的速率。也…

全局变量在函数中的使用:Python 编程技巧解析

在Python编程中,全局变量是一种在程序的多个部分中共享数据的机制。全局变量在函数中使用时,需要特别注意其作用域和访问方式。本文将详细讲解如何在函数中使用全局变量,并提供示例代码,帮助初学者深入理解这一概念。 基本原理 …

web3.js的使用

前端开发web3一共常用的库有4个,分别是: web3.js [核心库]ethereumjs-tx1.3.7 (这个包已经被弃用,只有1.3.7可用,如果采用ts开发则可以使用另一个包ethereumjs/tx) bip39 [助记词库]ethereumjs-wallet [钱包库] 注意&#xff1a…

AI作画涉及的深度学习算法

AI作画中使用的深度学习算法多种多样,这些算法主要基于神经网络的结构和训练方式,以生成和改进艺术作品。以下是一些在AI作画中常用的深度学习算法: 生成对抗网络(GANs, Generative Adversarial Networks)&#xff1a…

Linux —— 线程

Linux —— 线程 什么是线程Linux如何实现线程Winodws如何实现线程使用一下线程pthread_create函数原型参数说明返回值 如何解决 ps -aL 查看线程线程为什么轻量 我们今天进入线程的学习: 什么是线程 我们先来了解一个笼统的概念:简单来说,…

负载均衡技术

负载均衡技术 1. MapReduce MapReduce 是一种编程模型,旨在处理大规模数据集的并行计算任务,通常针对大于 1TB 的数据。该模型借鉴了函数式编程语言的概念,如 “Map” 和 “Reduce”,以及矢量编程语言的特性,使得编程…

计算机发展史故事【12】

芯片计算机 众所周知,所谓286、386、486 个人电脑等名称的起源,在于它们采用了英特尔公司研制的微处理器X86 系列芯片286、386 和486。然而,这种以数字为电脑命名的奇特现象,却来源于霍夫博士等人发明的世界上第一个微处理器芯片…

MySQL变量定义与使用

1 set userName小可爱; set userName:玛卡巴卡; select userName as名称; 2 set x5,y7,dx3.1425,dy6.678; selectxy as 四则运算; selectx-y as 四则运算; selectx*y as 四则运算; selectx/y as 四则运算; selectx%y as 四则运算; 3 set result1dxdy as 四则运算; set res…

动态路由-链路状态路由协议ospf案例

实验拓扑和要求如图 ospf实验 1.设置各个接口地址 2.测试ar5到ar6的连通性 3.配置ospf协议,routerid,area, 详细的网络信息,等待网络收敛后, 查看ospf信息,路由表信息,再次测试连通性 注意区域…

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制 网络地址转换(NAT)是现代网络架构中不可或缺的一个组成部分,尤其在防火墙技术的实现中扮演着重要角色。本文旨在全面解读NAT的工作机…

AI算法-高数5.1-线性代数-向量定义、表示和向量间的关系

看线性代数这篇文章(AI算法-高数5-线性代数1-基本概念、向量-CSDN博客)理解有些吃力的朋友们,可以先学下宋浩老师的这些课程。 宋浩老师: 3.1 n维向量及其运算_哔哩哔哩_bilibili 3.2 向量间的线性关系(一&#xff…

【Python】深度学习中随机数种子seed的种类和设置方式

在机器学习和深度学习的实验中,确保实验的可重复性是非常重要的。下面定义的set_random_seed(seed) 函数的主要目的是设置随机种子以确保代码的随机性操作(如参数初始化、数据集分割、随机数据增强等)在不同运行之间是可重复的。这使得其他研…

MFC编程之设计美丽的对话框

目录 写在前面: Part 1:美美的设计一下计算器的布局 1.描述文字: ​编辑 2.ID: Part 2:美美熟悉一下计算器的工作流程 Part 3:美美设计一下控件功能 1.edit control: 2.相关变量初始化&…

go语言中io操作中的 io.Reader 和 io.Writer的获取方法 总结

我们在对文件进行io操作的时候,经常看到需要我们传递一个 io.Reader 或者 io.Writer 对象作为读写的入参, 那么我们该如何或者这些个RW对象呢? 其实很简单,你只需要查找一下哪些对象实现了 Read或者 Writer方法,那么你…