发表时间:2022-03-26来源:网络
本文将使用exe4j将java项目封装为可以发送给他人使用的工具为例,来记录将java项目封装为exe文件的全过程
目标:创建相关java项目代码,以实现相关功能
创建一个java项目,目录结构如下:
代码如下:
CmdToolMain.java package com.gf.tool_cmd.main; import com.gf.tool_cmd.tool.CmdUtil; import com.gf.tool_cmd.tool.JOptionPaneUtil; import lombok.AllArgsConstructor; import lombok.Data; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class CmdToolMain { private static List cmdRoles = new ArrayList(); static { cmdRoles.add(new CMDRole("立刻关机", "shutdown -s -t 0")); cmdRoles.add(new CMDRole("计算器", "calc")); cmdRoles.add(new CMDRole("打开新记事本", "notepad")); } public static void main(String[] args) { String message = "请选择操作"; String title = "gf_cmd_tool"; List items = cmdRoles.stream().map(CMDRole::getDescribe).collect(Collectors.toList()); int i = JOptionPaneUtil.chooseOne(message, title, items, 0); if (i == -1) { System.exit(0); } CmdUtil.execCommand(cmdRoles.get(i).getCmd()); } @Data @AllArgsConstructor private static class CMDRole{ private String describe; private String cmd; } } CmdUtil.java package com.gf.tool_cmd.tool; public class CmdUtil { public static void execCommand(String[] command) { for (int i = 0; i < command.length; i++) { System.out.print(command[i] + " "); } try { Runtime.getRuntime().exec(command); } catch (Exception e) { System.out.println(e.getMessage()); } } public static void execCommand(String command) { try { Runtime.getRuntime().exec(command); } catch (Exception e) { System.out.println(e.getMessage()); } } } JOptionPaneUtil.java package com.gf.tool_cmd.tool; import javax.swing.*; import java.io.IOException; import java.util.List; public class JOptionPaneUtil { /** * 弹窗展示信息 * @param title 标题 * @param message 信息 */ public static void showInfo(String title,String message){ JOptionPane.showMessageDialog(null, message, title, JOptionPane.ERROR_MESSAGE); } /** * 单选 * @param objects 选项列表 * @param defaultIndex 第几个作为默认 * @return 选择了第几个 */ public static int chooseOne(String message,String title,List objects,int defaultIndex){ int = JOptionPane.ERROR_MESSAGE; ImageIcon icon = null; return chooseOne(message,title,objects, defaultIndex, ,icon); } /** * 单选 * @param message 信息 * @param title 标题 * @param objects 选项列表 * @param defaultIndex 第几个作为默认 * @param messageType 消息类型 {@link JOptionPane#_MESSAGE} * @return 选择了第几个 */ public static int chooseOne(String message,String title,List objects,int defaultIndex,int messageType,ImageIcon icon){ Object o = JOptionPane.showInputDialog( null, message, title, messageType, icon, objects.toArray(), objects.get(defaultIndex) ); return objects.indexOf(o); } } pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE com.gf tool_cmd 0.0.1-SNAPSHOT tool_cmd Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-maven-plugin 执行main方法之后效果如下:到这项目代码就准备好了,下一步进行打包操作
目标:打出可执行的jar包,为了后期版本更新,需要封装代码中引入第三方的jar文件
依次点击 【FIle】->【Proiect structure】 进入项目设置(或者点击快捷按钮)
创建module
选择启动类
选择第三方jar包执行方式
选择打包配置文件存放目录
右键点击1,创建lib文件夹
将第三方jar放入lib,也可以使用maven编译命令,dependency:copy-dependencies 将用到的jar包提取出来,复制进lib文件夹
点击jar,设置第三方jar路径
点击4,进入设置
为每个第三方jar添加lib/前缀,
保存
编译打包
编译成功后就可以在上图的文件接口图中找到导出的artifacts文件夹
得到最终的lib文件夹和jar文件后,在 tool_cmd_jar 文件夹内打开cmd,使用java -jar tool_cmd.jar命令即可尝试执行,一旦可以执行,即可进入下一步操作
详细打包步骤可参考文章【IDEA如何打包可运行jar的一个问题】
目标:下载并安装exe4j,使用exe4j对Java项目代码创建可运行的.exe文件
进行jre环境校验
如果不通过会有错误提示,需要调整java jre环境
设置jre环境后可以在cmd里执行 java -version进行测试,如果出现以下打印,则为设置成功
打开exe4j文件,下一步即可
选择jar模式
设置名称和等会封装的exe输出路径
设置exe应用的名称和图标
选择jar路径
设置启动类
填写jre版本
完成封装,可以在这里保存当前配置到exe4j文件,以便下次再次使用
执行完的文件夹,会生成一个gf_tool.exe文件
启动gf_tool.exe会有这个提示,是因为exe4j软件没有激活是试用的
打开exe4j,打开激活软件,然后按图中步骤点击激活
激活成功后首页长这样,再次打开软件不会再有提示
目标:将项目文件压缩为自解压文件,便于传给他人使用
使用winrar压缩软件将图中框选的文件进行压缩
勾选自解压选项
在高级里设置解压路径
在高级里添加解压后生成的快捷方式
至此,点击完成后压缩就完成了,使用时双击生成的tool_cmd.exe文件即可
解压完成后,双击桌面生成的快捷方式,即可运行程序
本文为原创,仅代表个人观点,欢迎大家交流学习
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14