当前位置: 首页 > news >正文

(超详细讲解)实现将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的电脑下运行)

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

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

相关文章:

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

目录 实现打包到exe大概步骤 工具准备 1.将java程序文件打包成jar文件 2.准备好jre文件 3.使用exe4j软件打包好 4.最终打包 实现打包到exe大概步骤 1.打包需要满足的条件:将java文件转成jar文件的工具exe4j、 以及需要满足jdk1.8以上(因安装exe4…...

学习软考----数据库系统工程师29

数据操作 SELECT基本结构 简单查询 连接查询 子查询 聚集函数 分组查询 字符串操作 集合操作 外连接 INSERT INTO语句 DELETE语句 UPDATE语句...

STL中的优先级队列

目录 1.引言 2.简介 3.基本操作 4.实现原理 5.自定义优先级比较 6.相关题目 7.能特点 8.总结 1.引言 在C标准库中,优先级队列是一种非常有用的数据结构,它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…...

浅谈Acrel-2000ES储能能量管理系统的设计与应用-安科瑞 蒋静

0 前言 为进一步提升河南省分布式光伏发电发展水平,促进行业健康可持续发展,河南省发布关于促进分布式光伏发电健康可持续发展的通知。对于储能行业,可以用到安科瑞Acrel-2000ES储能能量管理系统。 储能柜EMS能量管理系统 1、产品名称 储…...

会员卡积分小程序系统源码商业运营版 行业一站式解决方案附带源代码以及搭建安装部署教程

系统概述 会员卡积分小程序系统源码商业运营版是一套完整的会员卡积分系统解决方案,包含前端小程序、后端管理系统以及数据库设计。该系统支持多种会员卡类型、积分规则设定、积分兑换、优惠券发放等功能,满足企业对于会员积分管理的各种需求。同时&…...

uniapp 百度地图 拖动获取经纬度级搜索连用

import loadBMap from /utils/loadBMap.js// 百度聚合具体代码 // 拖动 initMapc() {let that thisloadBMap(百度key).then(() > {map new BMap.Map(mapContainer)const centerPoint new BMap.Point(this.longitude, this.latitude)map.centerAndZoom(centerPoint, this.…...

Yarn的安装和使用详细教程(Mac/Window)

目录 Yarn是什么? Mac安装Yarn 使用Homebrew安装Yarn 使用npm安装Yarn Windows安装Yarn 使用npm安装Yarn Yarn使用 常用命令: 特殊命令: Yarn是什么? Yarn是一个流行的包管理工具,用于管理JavaScript项目的依…...

高考志愿系统-学生管理模块分析

1.获取学生信息: 接口:http://localhost:81/dev-api/college_entrance/student/list?pageNum1&pageSize10 请求方式get 默认传参pageNum和pageSize,表示当前页,每页展示数量 首先通过startPage()方法获取分页参数当前页&…...

【问题实操】银河高级服务器操作系统实例分享,开机之后反复重启

1.服务器环境以及配置 物理机/虚拟机/云/容器 物理机 外网/私有网络/无网络 私有网络 处理器: PHYTIUM FT2000PLUS 2200 MHz 内存: 128 GiB 整机类型/架构: HIKVISION DS-V BIOS版本: HK 601FBE02HK 网卡&#xff1…...

攻防世界-web-unseping

题目 知识点 PHP代码审计PHP序列化和反序列化PHP中魔术方法命令执行绕过方式 解读源码 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function …...

网络网络层之(4)IPv4协议

网络网络层之(1)IPv4协议 Author: Once Day Date: 2024年4月4日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的…...

16-LINUX--线程安全

一。线程安全 线程安全即就是在多线程运行的时候&#xff0c;不论线程的调度顺序怎样&#xff0c;最终的结果都是 一样的、正确的。那么就说这些线程是安全的。 要保证线程安全需要做到&#xff1a; 1&#xff09; 对线程同步&#xff0c;保证同一时刻只有一个线程访问临界资…...

Flask SQLAlchemy 技术指南

文章目录 什么是 Flask SQLAlchemy&#xff1f;安装 Flask SQLAlchemy创建 Flask 应用和数据库模型添加和查询数据运行 Flask 应用总结**数据库迁移&#xff08;Database Migrations&#xff09;****复杂查询****关系模型****事务处理****性能优化****安全性****扩展功能** Fla…...

js通过时间对JSON中的数据进行排序

需求 现在需要通过每一个数据段的date字段对数组的整体数据进行排序&#xff01; 元数据如下&#xff1a; var data [{"filename": "123","date": "2024-05-10 19:53:57","stand": "GB-14","filter":…...

leetcode206-Reverse Linked List

题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 分析 用一个指针记录当前位置&#xff0c;另外一个指针记录当前位置的前一个位置&#xff0c…...

云计算第十二课

安装虚拟机 第一步新建虚拟机 选择自定义安装 下一步 选择稍后安装操作系统 选择系统类型和版本 选择虚拟机文件路径&#xff08;建议每台虚拟机单独存放并且路径不要有中文&#xff09;点击下一步 选择bios下一步 选择虚拟机处理器内核数量 默认硬盘或者自行调大硬盘 选择虚…...

【elasticsearch】慢查询替代查询审计的尝试

【elasticsearch】慢查询替代查询审计的尝试 使用了es有两年了&#xff0c;突然发现一个&#xff0c;es没有查询审计日志&#xff0c;某个用户查询了某个索引的审计。 找了官方文档和社区的回复都是说使用slow log替代慢查询。 尝试一下。 参考链接1&#xff1a;https://discus…...

腐烂的橘子BFS

题目&#xff1a; 腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子…...

什么是分库分表

读写分离主要应对的是数据库读并发&#xff0c;没有解决数据库存储问题。试想一下&#xff1a;如果 MySQL 一张表的数据量过大怎么办? 答案当然是分库分表 什么是分库&#xff1f; 分库 就是将数据库中的数据分散到不同的数据库上&#xff0c;可以垂直分库&#xff0c;也可…...

pytest并发执行用例方案

背景 开始做新项目的UI自动化&#xff0c;需要考虑用例的并发执行&#xff0c;因为之前做的项目是通过插件pytest-parallel 0.1.1 pytest-multithreading-allure 1.0.8来实现的&#xff0c;所以这次也打算用此方法&#xff0c;然而在实际使用过程中发现一些问题。 问题一 通…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...