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

Java学习——使用jpackage把jar文件打包为可执行的exe文件

前言:最近在写Java的飞机大战小游戏,写到最后我就想如果每次打开游戏都要这么繁琐(指打开cmd—>输入命令)那对于没有Java基础的人来说是一种烦恼,所以便研究怎么打包成exe文件,这样也防止被他人反编译,于是有了今天的文章
jpackage 是 Java 平台中一个用于打包和分发独立应用程序的工具,自 JDK 14 起作为正式特性(JEP 343)引入。其主要目的是解决 Java 应用分发时的环境依赖问题,让用户无需预装 JRE 即可运行 Java 程序。以下是其核心功能和应用场景的概述:

📦 一、核心功能

  1. 生成自包含安装包
    jpackage 将 Java 应用、依赖库及 JRE 运行时打包为平台特定的安装程序,支持以下格式:

    • Windows.exe(可执行安装程序)或 .msi(Microsoft Installer)。
    • macOS.dmg(磁盘映像)或 .pkg(安装包)。
    • Linux.deb(Debian/Ubuntu)或 .rpm(Red Hat/Fedora)。
  2. 消除 JRE 依赖
    打包后的应用包含嵌入式 JRE,用户无需单独安装 Java 环境,大幅降低使用门槛。

  3. 自定义安装体验

    • 设置应用名称、版本、版权信息(--name, --app-version, --copyright)。
    • 配置桌面快捷方式(--win-shortcut)、开始菜单入口(--win-menu)及安装目录选择(--win-dir-chooser)。
    • 指定应用图标(--icon),支持 .ico(Windows)、.icns(macOS)等格式。
  4. 支持模块化与非模块化应用

    • 兼容基于 JPMS 的模块化应用(--module)和传统 JAR 应用(--main-jar)。

⚙️ 二、典型使用场景

  1. 桌面应用程序分发
    将 JavaFX 或 Swing 开发的 GUI 应用打包为原生安装包,提供与本地应用一致的安装和运行体验。
  2. 命令行工具部署
    打包无界面的 Java 命令行工具(如数据处理脚本),通过 --win-console 生成控制台启动器。
  3. 企业级服务分发
    适用于需独立运行的服务器应用(如微服务),通过 --launcher-as-service 注册为系统服务。

http://www.dtcms.com/a/279963.html

相关文章:

  • SnapKit介绍与使用
  • OneCode 3.0: 注解驱动的Spring生态增强方案
  • windows系统中双击.py文件可以直接运行
  • 第 2 章 数据类型及其运算
  • JSCPC 2025 江苏省赛
  • VictoriaMetrics 架构
  • 位置编码类型彩色图解
  • 考虑频率耦合的构网型(GFM)VSG变流器(电压电流双闭环控制结构)的二维序阻抗与降维SISO序阻抗建模详细推导及扫频对比验证
  • 【人工智能99问】什么是深度学习?(2/99)
  • Kimi K2智能体能力的技术突破:大规模数据合成 + 通用强化学习
  • 名片管理系统IV
  • 螺旋模型:风险分析驱动的渐进式开发
  • cuda优化之softmax
  • 组件化思想
  • Brooks 低温泵On-Board Cryopump 安装和维护手法Installation and Maintenance Manual
  • aspnetcore Mvc配置选项中的ModelBindingMessageProvider
  • 第二章 基于新版Onenet搭建云服务(stm32物联网)
  • PyTorch中torch.topk()详解:快速获取最大值索引
  • @Resource 注解的空值处理(默认行为与容器实现)
  • 冲刺阶段项目进度压力大,如何组织高效冲刺
  • 大屏搭建多个图表不自适应问题
  • H264编码结构和解析
  • 第四章 uniapp实现兼容多端的树状族谱关系图,剩余组件
  • ESP32 OTA升级详解:使用Arduino OTA库实现无线固件更新
  • HTML 文本格式化标签
  • java--ThreadLocal创建以及get源码解析
  • http常见状态码
  • 苦练Python第18天:Python异常处理锦囊
  • 【论文阅读】Masked Autoencoders Are Effective Tokenizers for Diffusion Models
  • rsyslog简单应用