- 功能描述
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"
- InnoSetup下载
- 生成安装程序
- 解释安装程序
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}":指定目标文件夹,这里使用了默认
- 编辑安装程序
[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 标记意味着该脚本将以安 装程序运行时的相同权限级别运行。
- 运行安装程序(666666.exe)