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

java项目使用exe4j打包成exe文件

java项目使用exe4j打包成exe文件


前言:我们都知道java是平台无关性,可以打包成jar文件,到任何操作系统有jre环境的电脑都可以允许!但是我们打包成exe文件就相当于舍弃了这一大优势,不过确实有需要打包成exe的时候吧!下面介绍方法给大家,将java程序打包成exe可运行文件!

准备工具:

eclipseexe4j(exe4j的下载地址:http://www.pc6.com/softview/SoftView_68764.html#download  如安装遇到问题,请参见:http://blog.csdn.net/xlgen157387/article/details/38404063)

第一步,将java项目打包成可执行jar文件,首先看一下我的java project结构,这个很简单,简单看一下我的项目(临时写的)


(1)在项目(chp02)上点击右键,选择Export--找到java---Runnable JAR file然后next


(2)在Lanch configuration选择启动的主程序main 在Export destination选择你要保存的目录和名字,然后finish

(弹出的对话框,点击ok即可!)


(3)

生成Hello.jar文件

第二步,将项目打包成exe

(1)这里要明确一点,并不是把所有的文件都打包成一个exe,资源文件是不能包进去的,往下看↓

首先,在任意目录创建一个文件夹,最好命名和项目名相同

(如果你怕执行该程序的机器上没安装jre,那么你需要将自己机器上的jre目录也拷贝进来),最后的目录结构:


(2)打开exe4j,跳过欢迎,直接点击左侧导航的第二项,因为我们已经提前将java项目打包成可执行jar文件了

在弹出窗口,选择“JAR in EXE mode”,点击“Next


(3)在新窗口中,为我们的应用取个名称,之后选择exe生成目录(我的桌面),点击“Next


(4)为我们要生成的exe取名,如果想生成自定义图标,那么选择你的ico文件,如果你不想在一台电脑上运行多个你的程序,你可以勾选“Allow only a single...”,点击“Next


点击绿色“+”,设置程序运行的Class Path


点击这个“+”选择Archive选择我们自己的可执行jar文件(我的Hello.jar),点击OK


我们的Hello.jar就加到Class Path下了


(5)之后点击General中的Main Class选择按钮,在弹出窗口中,exe4j会自动搜索当前Class Path下的全部jar中包含main方法的类,并列出,因为当前我只选择了自己项目的jar,而我的项目中只有Main.jar包含了main方法,所以一目了然,直接选择它点击“OK”,程序入口类就设置完了

Main Class设置完成后,依次将所有需要的第三方类库加到Class Path下,方法同添加“Hello.jar”一样,点击“Next

(6)输入Java最小Jre版本号,即低于这个版本的Jre无法运行该程序,接着点击“Advanced Options-Search sequence”,设置一下我们的JRE,之前说过,如果客户机上没装Jre咋办?,没关系我们捆绑一个进去


点击右侧边栏的黑色部分


点击绿色“+”来选择捆绑的JRE位置


在弹出对话框中选择“Directiony”,之后选择JRE的文件夹,注意:这个JRE目录是我们将本机的JRE目录拷贝到当前exe生成目录下的,下图程序使用的是相对目录,点击OK,完成JRE的捆绑操作


JRE捆绑完毕,点击“Next


默认,点击“Next


默认,点击“Next


默认,点击“Next


exe生成中

2011060516391366.png (700×520)

点击“Exit”即可


我的程序成效果如下:

观看Hello.exe的属性

我们的可执行jar以及第三方jar总共还不到5M,可jre8目录就80M,如果目标机器上有JRE环境就可以把它删掉了,现已打包到exe中了,所以它也没有存在的理由了,那么最小配置就剩下了“Hello.exe目录了!

 


相关文章:

  • Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)
  • Java对于私有变量的“暴力反射”技术
  • Java相关书籍推荐
  • Java在利用反射条件下替换英文字母中的值
  • sql server 2008如何导入mdf,ldf文件
  • Servlet 中文乱码问题及解决方案剖析
  • 4、模拟器中文输入
  • Tomcat7.0修改默认的路径访问自己的项目
  • 使用NPOI方法导出数据到excel表中
  • Servlet实现的三种方法
  • Servlet登陆功能的实现
  • 事务分类
  • Servlet实现Session
  • Servlet实现Cookie的创建,读取,删除
  • 通过Maven部署项目到Tocmat7
  • [case10]使用RSQL实现端到端的动态查询
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 10个确保微服务与容器安全的最佳实践
  • AWS实战 - 利用IAM对S3做访问控制
  • canvas绘制圆角头像
  • ECMAScript6(0):ES6简明参考手册
  • Javascript 原型链
  • js ES6 求数组的交集,并集,还有差集
  • Magento 1.x 中文订单打印乱码
  • Nacos系列:Nacos的Java SDK使用
  • spring security oauth2 password授权模式
  • text-decoration与color属性
  • TypeScript迭代器
  • windows下mongoDB的环境配置
  • 如何利用MongoDB打造TOP榜小程序
  • 思维导图—你不知道的JavaScript中卷
  • 一些css基础学习笔记
  • 白色的风信子
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​虚拟化系列介绍(十)
  • #pragma 指令
  • (1)(1.9) MSP (version 4.2)
  • (13)Hive调优——动态分区导致的小文件问题
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (剑指Offer)面试题34:丑数
  • (六)Hibernate的二级缓存
  • (正则)提取页面里的img标签
  • (转)nsfocus-绿盟科技笔试题目
  • (转)Unity3DUnity3D在android下调试
  • (转载)Linux网络编程入门
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET 常见的偏门问题