Launch4j:轻量级 Java 应用 Windows 打包方案

Launch4j:轻量级 Java 应用 Windows 打包方案

​​​​​Launch4j 是一款开源工具,专注于将 Java 程序(JAR 文件)封装为 Windows 原生可执行文件(.exe)。其核心原理是为 JAR 文件添加一个轻量级启动器,用户无需安装 Java 环境即可直接双击运行,体验与原生应用无异。

核心优势与特性

无缝用户体验
通过生成的 .exe 文件,用户无需手动配置 Java 环境或执行命令行操作。启动器自动检测系统 JRE 或使用捆绑的运行时,实现开箱即用。

原生集成能力
支持为可执行文件嵌入自定义图标、版本信息、公司名称等元数据。提供进程名称控制、单实例运行、UAC 权限管理等功能,使 Java 应用更贴近原生软件体验。

高效打包机制
采用内存映射技术直接加载内嵌 JAR,避免释放临时文件,既提升启动速度又降低代码泄露风险。支持 32/64 位架构,可配置为控制台或 GUI 应用模式。

灵活的配置方式
提供图形化配置向导和 XML 配置文件两种方式,支持通过 Ant/Maven 插件实现自动化构建,轻松集成到持续交付流程中。

典型应用场景

  • 商业桌面软件分发
  • 教育演示程序部署
  • 企业内网工具发布
  • 游戏启动器封装
  • 自助服务终端(Kiosk)应用

注意事项

  • 平台限制:仅支持 Windows 平台,如需跨平台打包需配合 JPackage 等工具
  • 依赖保留:生成的 .exe 仍需 JRE 环境,可通过捆绑 JRE 解决
  • 体积优化:启动器会略微增加文件大小,但远小于完整安装包

该工具显著降低了 Java 应用的分发门槛,尤其适合需要简化用户操作流程的场景。对于追求原生体验的开发者,Launch4j 提供了平衡轻量化与功能性的解决方案。

下载Launch4j

这里为大家提供了 Launch4j 最新版的安装包:

网盘下载:https://pan.quark.cn/s/de53d1092dd4

网盘中包含适用 Windows、Linux 和 Mac OS 三个平台的 Launch4j 安装包,大家可以对号入座。

安装Launch4j

1) 双击下载的 launch4j-3.50-win32.exe,如下图所示,点击“下一步”:
 


2) 点击“我接受”:
 


3) 自定义安装路径,建议安装到非系统盘,比如下图的 D 盘,然后点击“安装”:
 


4) 等待安装完成,看到下图的界面,表示安装成功:
 


启动安装好的 Launch4j,如下图所示:
 

使用Launch4j打包

1) 打开 Launch4j,进入 Basic 选项卡:

  • Output file:设置生成的 EXE 路径(如app.exe );
  • Jar:选择待打包的 JAR 文件路径;
  • Icon(可选):添加 EXE 图标(需 .ico 格式)。

这里可以不填

参考

2) 进入 JRE 选项卡:

  • Min JRE version:填写最低兼容的 JRE 版本;
  • Bundled JRE path:指定相对路径;
  • JVM Options:可以添加需要的参数,譬如-Dfile.encoding=UTF-8。


3) 调整 Header 与 Classpath:

  • Header:选择 GUI 模式(窗口程序)或 Console 模式(命令行程序);
  • Classpath:若依赖外部 JAR,需在此添加路径(确保路径正确性)。


4) 根据需要设置项目的相关基本信息。
 


5) 生成 EXE 文件:

  • 保存配置:点击菜单栏保存图标(Save Configuration),保存为 XML 文件(便于后续修改);

构建 EXE:点击工具栏齿轮图标(Build Wrapper),生成 EXE 文件。

Read more

[Java]RuoYi框架原理分析

[Java]RuoYi框架原理分析

代码生成器 源码分析 代码生成器是提高开发效率的重要工具,它主要分为两个部分: 第一部分涉及将业务表结构导入到系统中,在这里,开发者可以预览、编辑、删除和同步业务表结构,实现对业务表的全面管理。 第二部分是在选择了特定的表之后,点击生成按钮,系统将根据表结构生成相应的前后端代码,并提供下载。 表结构说明 若依提供了两张核心表来存储导入的业务表信息: gen_table:存储业务表的基本信息 ,它对应于配置代码基本信息和生成信息的页面 gen_table_column:存储业务表的字段信息 它对应于配置代码字段信息的页面。 这两张表是一对多的关系,一张业务表可以有多个字段的信息,所以在字段信息表中有个外键table_id指向 目录结构 1)后端代码 2)前端代码 查询数据库列表 当管理员在界面上点击导入按钮时,会弹出一个对话框,此时,前端需要向后端发送请求,查询数据库并返回到前端,展示当前项目库中所有待导入的业务表。 此功能涉及前端相关的代码位于views/tool/index.vue这个视图组件中,负责实现导入业务表的用

By Ne0inhk
C++手撕红黑树:从0到200行,拿下STL map底层核心

C++手撕红黑树:从0到200行,拿下STL map底层核心

文章目录 * C++手撕红黑树:从0到200行,拿下STL map底层核心 * 1. 红黑树的概念 * 1.1 红黑树的规则 * 1.2 红黑树如何确保最长路径不超过最短路径的2倍? * 1.3 红黑树的效率 * 2. 红黑树的实现 * 2.1 红黑树的结构 * 2.2 红黑树的插入 * 2.2.1 插入的大概过程 * 2.2.2 情况1:变色 * 2.2.3 情况2:单旋 + 变色 * 2.2.4 情况3:双旋 + 变色 * 2.3 红黑树的插入代码实现 * 2.

By Ne0inhk
C++学习之旅【C++伸展树介绍以及红黑树的实现】

C++学习之旅【C++伸展树介绍以及红黑树的实现】

🔥承渊政道:个人主页 ❄️个人专栏: 《C语言基础语法知识》《数据结构与算法》 《C++知识内容》《Linux系统知识》 ✨逆境不吐心中苦,顺境不忘来时路!🎬 博主简介: 引言:前篇文章,小编已经介绍了关于C++AVL树的实现!相信大家应该有所收获!接下来我将带领大家继续深入学习C++的相关内容!本篇文章着重介绍关于C++伸展树介绍以及红黑树的实现!伸展树与红黑树是两类极具代表性的BBST,且在工程实践中各有不可替代的价值:伸展树摒弃了"严格平衡”的执念,通过“伸展”操作将最近访问的节点移至根节点,利用“局部性原理”优化频繁访问的场景,实现均摊O(logn)的时间复杂度,适合缓存、热点数据查询等场景;红黑树则通过给节点着色并遵守严格的颜色规则,确保树的最长路径不超过最短路径的两倍,以 “弱平衡” 换稳定的最坏O(logn)性能,是C++ STL 中 std::map、std:

By Ne0inhk
C++ 模板进阶:特化、萃取与可变参数模板

C++ 模板进阶:特化、萃取与可变参数模板

C++ 模板进阶:特化、萃取与可变参数模板 💡 学习目标:掌握模板进阶技术的核心用法,理解模板特化的深层应用、类型萃取的实现原理,以及可变参数模板的灵活使用,提升泛型编程的实战能力。 💡 学习重点:模板特化的进阶场景、类型萃取工具的设计与应用、可变参数模板的展开技巧、折叠表达式的使用方法。 一、模板特化进阶:处理复杂类型场景 💡 模板特化不只是针对单一类型的定制,还能处理指针、引用、数组等复杂类型,实现更精细的类型适配逻辑。 1.1 指针类型的模板特化 通用模板默认处理普通类型,我们可以为指针类型单独编写特化版本,实现指针专属的逻辑。 #include<iostream>#include<string>usingnamespace std;// 通用模板:处理普通类型template<typenameT>classTypeProcessor{public:staticvoidprocess(T data){ cout

By Ne0inhk