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

InnoSetup制作安装包(EXE)

  1. 功能描述
    1.666666.war为项目war包,666666.bat为启动war包脚本,通过InnoSetup将它们打包到安装包666666.exe
    2.666666.exe安装包安装过程中将666666.bat注册为自启动服务,安装结束自动执行脚本启动项目666666.war
    ----------------------------------------666666.bat----------------------------------------
    @echo off
    start /B javaw -jar "D:\666666.war"
  2. InnoSetup下载
  3. 生成安装程序














  4. 解释安装程序
    1.#define MyAppName "AAA":定义一个名为MyAppName的常量,并赋值为"AAA"。
    2.#define MyAppVersion "1.0":定义一个名为MyAppVersion的常量,并赋值为"1.0"。
    3.#define MyAppPublisher "BBB":定义一个名为MyAppPublisher的常量,并赋值为"BBB"。
    4.#define MyAppURL "CCC":定义一个名为MyAppURL的常量,并赋值为"CCC"。
    5.[Setup]:这是一个安装脚本的头部标记,用于指定安装信息。
    6.AppId={{9BCA7C00-6B43-4EBB-B710-EE01EF415EE4}:指定安装包的唯一标识符,使用GUID格式。
    7.AppName={#MyAppName}:指定安装包的名称,使用MyAppName常量的值。
    8.AppVersion={#MyAppVersion}:指定安装包的版本号,使用MyAppVersion常量的值。
    9.AppPublisher={#MyAppPublisher}:指定安装包的发布者名称,使用MyAppPublisher常量的值。
    10.AppPublisherURL={#MyAppURL}:指定安装包的发布者网址,使用MyAppURL常量的值。
    11.AppSupportURL={#MyAppURL}:指定安装包的技术支持网址,使用MyAppURL常量的值。
    12.AppUpdatesURL={#MyAppURL}:指定安装包的更新网址,使用MyAppURL常量的值。
    13.DefaultDirName={autopf}{#MyAppName}:指定安装包的默认安装路径,使用MyAppName常量的值。
    14.DefaultGroupName={#MyAppName}:指定安装包在开始菜单中的默认分组名称,使用MyAppName常量的值。
    15.PrivilegesRequired=lowest:如果取消注释此行,则将在非管理员安装模式下运行安装程序(仅为当前用户安装)。
    16.OutputDir=C:\Users\Administrator\Desktop:指定生成安装包的目标目录。
    17.OutputBaseFilename=666666:指定生成的安装包的文件名。
    18.Compression=lzma:指定使用的压缩算法。
    19.SolidCompression=yes:指定是否对文件进行实体化压缩。
    20.WizardStyle=modern:指定使用的安装程序向导界面风格。
    21.[Languages]:这是一个安装脚本的语言部分,用于指定语言文件。
    22.Name: "english"; MessagesFile: "compiler:Default.isl":指定使用英语作为安装程序的语言,使用默认的语言文件。
    23.[Files]:这是一个安装脚本的文件部分,用于指定需要拷贝的文件信息。
    24.Source: "D:\666666.war":指定需要拷贝的源文件路径。
    25.DestDir: "{app}":指定目标文件夹,这里使用了默认
  5. 编辑安装程序
    [Run]
    Filename: "cmd.exe"; Parameters: "/c sc query 666666 && sc delete 666666"; Flags: runhidden
    Filename: "cmd.exe"; Parameters: "/c sc create 666666 binPath= ""{app}\666666.bat"" start= auto"; Flags: runhidden
    Filename: "{app}\666666.bat"; Flags: postinstall runasoriginaluser在这个代码中,第一行使用 sc query 命令来检查是否存在名为 666666 的服务。如果存在,sc query 命令将返回服务的信息,
    否则将返回错误信息。使用 && 运算符将 sc delete 命令和 sc query 命令组合在一起,只有在 sc query 命令返回成功时才
    会执行 sc delete 命令。sc delete 命令将删除名为666666的服务。接下来,我们使用 sc create 命令创建一个名为666666 
    的服务,并将服务的二进制文件设置为 {app}\666666.bat。start=auto 意味着服务将在系统启动时自动启动。最后一行是用来运行 {app}\666666.bat 文件,以便在安装完成后运行该脚本。runasoriginaluser 标记意味着该脚本将以安
    装程序运行时的相同权限级别运行。


  6. 运行安装程序(666666.exe)





http://www.lryc.cn/news/58692.html

相关文章:

  • CASE WHEN函数语句多条件下使用详解
  • 2.31、守护进程(2)
  • 记录上传文件异常 /tmp/tomcat... (No space left on device)
  • 无向连通图中长度为 n 的循环
  • 打造出ChatGPT的,是怎样一群人?
  • 数据结构——栈与队列相关题目
  • Redhat6.7离线安装rabbitmq
  • EasyCVR平台基于GB28181协议的语音对讲配置操作教程
  • 谷歌发布Self-Debug方法,让大模型学会自己修bug,一次性生成正确代码
  • 行为型模式-模板方法
  • 正则表达式识别日期
  • 如何设计一个秒杀架构设计?
  • Elasticsearch:配置选项
  • 消息中间件Kafka分布式数据处理平台+ZooKeeper
  • Linux 用户文件磁盘网络进程指令
  • 如何使用Socks5代理IP提高网络安全性
  • 《Java8实战》第3章 Lambda 表达式
  • 开放式耳机的颠覆之作!南卡OE Pro新皇降临!佩戴和音质双重突破
  • 生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]
  • JUC并发工具
  • java面试题-基础问题-如何理解Java中的多态?
  • 03.vue3的计算属性
  • Ceph性能调优
  • 机器学习-问答题准备(英文)-更新中
  • 展示演示软件设计制作(C语言)
  • Android 自定义view 入门 案例
  • [imangazaliev/didom]一个简单又快速的DOM操作库
  • Cookie和Session的工作流程及区别(附代码案例)
  • 适用于高级别自动驾驶的驾驶员可预见误用仿真测试
  • Linux之进程知识点