jar包转化成可执行exe

打印 上一主题 下一主题

主题 931|帖子 931|积分 2793

jar包转exe文件

环境要求


  • jdk17下载安装
  • 开通.Net Framework 3.5.1

    • 在Windows控制面板的 程序点击启用和关闭Windows功能
    • 勾选.Net Framework 3.5.1(包括.Net 2.0和3.0),点击确定,再点击同意下载
    • 等待自动下载并安装完成

  • wix3下载安装
jpackage

示例
  1. .\jpackage -t exe ^
  2. -i jar包文件夹路径 ^
  3. -n 应用名称 ^
  4. --main-jar 可执行jar包 ^
  5. --icon 应用图标路径
  6. --app-version 应用版本号
  7. --vendor 应用供应商名称 ^
  8. --dest 输出目录
  9. --verbose ^
  10. --win-console ^
  11. --win-dir-chooser ^
  12. --win-shortcut
复制代码

  • --verbose:启用详细输出
  • --win-console:为应用程序创建控制台启动程序,应当为需要控制台交互的应用程序指定
  • --win-dir-chooser:添加一个对话框,使用户能够选择产品的安装位置
  • --win-shortcut:请求为此应用程序添加桌面快捷方式
jpackage -h
  1. 用法:jpackage <options>
  2. 示例用法:
  3. --------------
  4.     生成适合主机系统的应用程序包:
  5.         对于模块化应用程序:
  6.             jpackage -n name -p modulePath -m moduleName/className
  7.         对于非模块化应用程序:
  8.             jpackage -i inputDir -n name \
  9.                 --main-class className --main-jar myJar.jar
  10.         从预构建的应用程序映像:
  11.             jpackage -n name --app-image appImageDir
  12.     生成应用程序映像:
  13.         对于模块化应用程序:
  14.             jpackage --type app-image -n name -p modulePath \
  15.                 -m moduleName/className
  16.         对于非模块化应用程序:
  17.             jpackage --type app-image -i inputDir -n name \
  18.                 --main-class className --main-jar myJar.jar
  19.         要为 jlink 提供您自己的选项,请单独运行 jlink:
  20.             jlink --output appRuntimeImage -p modulePath -m moduleName \
  21.                 --no-header-files [<additional jlink options>...]
  22.             jpackage --type app-image -n name \
  23.                 -m moduleName/className --runtime-image appRuntimeImage
  24.     生成 Java 运行时程序包:
  25.         jpackage -n name --runtime-image <runtime-image>
  26. 一般选项:
  27.   @<filename>
  28.           从文件读取选项和/或模式
  29.           可以多次使用此选项。
  30.   --type -t <type>
  31.           要创建的程序包的类型
  32.           有效值为:{"app-image", "exe", "msi"}
  33.           如果未指定此选项,则将创建与平台相关的
  34.           默认类型。
  35.   --app-version <version>
  36.           应用程序和/或程序包的版本
  37.   --copyright <copyright string>
  38.           应用程序的版权
  39.   --description <description string>
  40.           应用程序的说明
  41.   --help -h
  42.           将用法文本输出到输出流并退出,用法文本中包含
  43.           适用于当前平台的每个有效选项的列表和说明
  44.   --name -n <name>
  45.           应用程序和/或程序包的名称
  46.   --dest -d <destination path>
  47.           用来放置所生成的输出文件的路径
  48.           默认为当前的工作目录。
  49.           (绝对路径或相对于当前目录的路径)
  50.   --temp <file path>
  51.           用来创建临时文件的新目录或空白目录的路径
  52.           (绝对路径或相对于当前目录的路径)
  53.           如果指定,则在任务完成时将不删除临时目录,
  54.           必须手动删除临时目录
  55.           如果未指定,则将创建一个临时目录,
  56.           并在任务完成时删除该临时目录。
  57.   --vendor <vendor string>
  58.           应用程序的供应商
  59.   --verbose
  60.           启用详细的输出
  61.   --version
  62.           将产品版本输出到输出流并退出
  63. 用来创建运行时映像的选项:
  64.   --add-modules <模块名称>[,<模块名称>...]
  65.           要添加的模块的逗号 (",") 分隔列表。
  66.           此模块列表连同主模块(如果指定)
  67.           将作为 --add-module 参数传递到 jlink。
  68.           如果未指定,则仅使用主模块(如果指定了 --module),
  69.           或者使用默认的模块集(如果指定了
  70.           --main-jar)。
  71.           可以多次使用此选项。
  72.   --module-path -p <module path>...
  73.           路径的 ; 分隔列表
  74.           每个路径要么是模块的目录,要么是
  75.           模块 jar 的路径。
  76.           (每个路径可以是绝对路径,也可以是相对于当前目录的路径)
  77.           可以多次使用此选项。
  78.   --bind-services
  79.           将 --bind-services 选项传递到 jlink(将在服务
  80.           提供商模块及其被依赖对象中进行链接)
  81.   --runtime-image <file path>
  82.           将复制到应用程序映像的预定义
  83.           运行时映像的路径
  84.           (绝对路径或相对于当前目录的路径)
  85.           如果未指定 --runtime-image,jpackage 将运行 jlink 以
  86.           使用如下选项创建运行时映像:
  87.           --strip-debug、--no-header-files、--no-man-pages 和
  88.           --strip-native-commands。
  89. 用来创建应用程序映像的选项:
  90.   --icon <icon file path>
  91.           应用程序包图标的路径
  92.           (绝对路径或相对于当前目录的路径)
  93.   --input -i <input path>
  94.           包含要打包的文件的输入目录的路径
  95.           (绝对路径或相对于当前目录的路径)
  96.           输入目录中的所有文件将打包到
  97.           应用程序映像中。
  98. 用来创建应用程序启动程序的选项:
  99.   --add-launcher <launcher name>=<file path>
  100.           启动程序的名称和包含关键字-值对列表的
  101.           属性文件的路径
  102.           (绝对路径或相对于当前目录的路径)
  103.           可以使用关键字 "module"、"main-jar"、"main-class"、
  104.           "arguments"、"java-options"、"app-version"、"icon" 和
  105.           "win-console"。
  106.           这些选项将添加到原始命令行选项中或者用来覆盖
  107.           原始命令行选项,以构建额外的替代启动程序。
  108.           将从命令行选项构建主应用程序启动程序。
  109.           可以使用此选项构建额外的替代启动程序,
  110.           可以多次使用此选项来构建
  111.           多个额外的启动程序。
  112.   --arguments <main class arguments>
  113.           在没有为启动程序提供命令行参数时,
  114.           要传递到主类的命令行参数
  115.           可以多次使用此选项。
  116.   --java-options <java options>
  117.           要传递到 Java 运行时的选项
  118.           可以多次使用此选项。
  119.   --main-class <class name>
  120.           要执行的应用程序主类的限定名称
  121.           只有在指定了 --main-jar 时才能使用此选项。
  122.   --main-jar <main jar file>
  123.           应用程序的主 JAR;包含主类
  124.           (指定为相对于输入路径的路径)
  125.           可以指定 --module 或 --main-jar 选项,但是不能同时指定
  126.           这两个选项。
  127.   --module -m <module name>[/<main class>]
  128.           应用程序的主模块(以及可选的主类)
  129.           此模块必须位于模块路径中。
  130.           如果指定了此选项,则将在 Java 运行时映像中
  131.           链接主模块。可以指定 --module 或 --main-jar 选项,
  132.           但是不能同时指定这两个选项。
  133. 用来创建应用程序启动程序的与平台相关的选项:
  134.   --win-console
  135.           为应用程序创建控制台启动程序,应当为
  136.           需要控制台交互的应用程序指定
  137. 用来创建应用程序包的选项:
  138.   --app-image <file path>
  139.           用来构建可安装程序包的
  140.           预定义应用程序映像的位置
  141.           (绝对路径或相对于当前目录的路径)
  142.   --file-associations <file path>
  143.           包含关键字-值对列表的属性文件的路径
  144.           (绝对路径或相对于当前目录的路径)
  145.           可以使用关键字 "extension"、"mime-type"、"icon" 和 "description"
  146.           来描述此关联。
  147.           可以多次使用此选项。
  148.   --install-dir <file path>
  149.           默认安装位置下面的相对子路径
  150.   --license-file <file path>
  151.           许可证文件的路径
  152.           (绝对路径或相对于当前目录的路径)
  153.   --resource-dir <path>
  154.           覆盖 jpackage 资源的路径
  155.           可以通过向该目录中添加替代资源来覆盖 jpackage 的
  156.           图标、模板文件和其他资源。
  157.           (绝对路径或相对于当前目录的路径)
  158.   --runtime-image <file-path>
  159.           要安装的预定义运行时映像的路径
  160.           (绝对路径或相对于当前目录的路径)
  161.           在创建运行时程序包时需要使用选项。
  162. 用来创建应用程序包的与平台相关的选项:
  163.   --win-dir-chooser
  164.           添加一个对话框以允许用户选择
  165.           产品的安装目录
  166.   --win-menu
  167.           将该应用程序添加到系统菜单中
  168.   --win-menu-group <menu group name>
  169.           启动该应用程序所在的菜单组
  170.   --win-per-user-install
  171.           请求基于每个用户执行安装
  172.   --win-shortcut
  173.           为应用程序创建桌面快捷方式
  174.   --win-upgrade-uuid <id string>
  175.           与此程序包升级相关联的 UUID
复制代码
package.bat
  1. @echo off
  2. echo 打包执行开始...
  3. :: 是否打印台展示【0=否,1=是】
  4. set CONSOLE_FLAG=1
  5. :: jdk14地址
  6. set JAVA_PATH=D:\dev\jdk-17.0.7\bin\
  7. :: 当前文件夹
  8. set PROJECT_FOLDER=%~dp0
  9. :: 应用名称,不能为空
  10. set EXE_NAME=测试打包应用
  11. :: 应用icon名称,空为默认icon
  12. set EXE_ICON=exe.ico
  13. :: 应用jar,不能为空
  14. set EXE_JAR=spring-exe2-1.0-SNAPSHOT.jar
  15. :: 应用供应商名称
  16. set EXE_VENDOR=
  17. :: 应用版本
  18. set version=1.0.0
  19. echo 当前项目地址%PROJECT_FOLDER%
  20. if %CONSOLE_FLAG% == 1 (
  21.         set CONSOLE_KEY=--win-console
  22. )
  23. set jarFolder=%PROJECT_FOLDER%target
  24. if not exist %jarFolder% (
  25.         echo %jarFolder%【文件夹不存在】
  26.         pause
  27. )
  28. cd %JAVA_PATH%
  29. jpackage -t exe -i %jarFolder% -n %EXE_NAME% --main-jar %EXE_JAR% --icon %PROJECT_FOLDER%%EXE_ICON% --app-version %version% --vendor %EXE_VENDOR% %CONSOLE_KEY% --verbose --win-dir-chooser --win-shortcut
  30. pause
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表