最近用java开发了一个客户端小工具,具体的技术就不细说了,这里主要说一下如何将一个jar包转换成exe可执行性程序,下面来看看。
1.在eclipse下测试程序main()方法能否正常启动。
2.导出打成jar包

程序右键选择 —> Export —> java -->Runnable JAR file —>Next

选择main()方法所在的类,并修改输出路径—>Finish。

3.测试jar包能否运行,cmd命令窗口输入:java -jar D:\offline-tools.jar
因存在中文字符,需解决乱码:-Dfile.encoding=UTF-8
命令:java -Dfile.encoding=UTF-8 -jar D:\offline-tools.jar
4.jar包转换成exe运行程序。
准备工作:新建一个文件夹,作为运行程序的储存地址。
考虑实际运行环境没有java环境,拷贝本地jre到储存地址文件夹下。
准备一个运行程序的图标(格式:ico)。
下载转换工具:exe4j(具体的破解方式百度)
运行exe4j程序 Next —> 第二步选择‘JAR’ in ‘EXE’ mode
修改应用名称和输出路径
设置运行程序名,是否设置图标,是否只可运行一个。
运行环境此处勾选,默认为32位系统。
注:32位exe程序需要用32位的jdk或jre,32位exe程序可以运行在64位环境下。
添加解决中文乱码命令,jar包,运行方法:-Dfile.encoding=UTF-8
选择jar所在路径

选择主程序所在类

设置最小最大jre版本

无JRE环境、如何实现不依赖运行环境
删除本地依赖java运行环境
配置拷贝jre相对路径
选择路径

选择默认vm
转换完毕!
扩展优化
背景:针对业务数据可能存在的不确定性,当对数据进行大量修改或反复修改时,因为数据是直接打入jar包内,需要修改程序内的配置文件,重新编译jar包,再生产exe程序。因未将经常修改的配置文件放在程序包外而导致一些工作重复,需要将配置文件放到程序包外。
程序包路径获取:
//配置文件在程序包内:根据选择的文件类型读取相对应的配置文件
ClassPathResource resource = new ClassPathResource("conf"+File.separator+"Tree1.json");
InputStream inputStream = resource.getInputStream();//采用读取流的方式访问文件
String jsonString = IOUtils.toString(inputStream);
//为了便于扩展,将配置数据放到程序外进行配置 读取绝对路径
File file = new File(new File("").getAbsolutePath()+File.separator+"conf"+File.separator+"Tree1.json");
String jsonString =FileUtils.readFileToString(file);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
本文详细介绍了使用Java开发的客户端工具如何从jar包转换为exe可执行文件的过程,包括在Eclipse中测试、导出jar包、解决中文乱码、使用exe4j工具将jar包转换为exe以及优化配置文件读取,使其不依赖于运行环境。
3236

被折叠的 条评论
为什么被折叠?



