一. 使用Winsw将jar包制作成windows服务
-
winsw:
它是一个开源单文件的可执行exe文件,可以再 Github 上下载,一般来说当然是下载最新的。winsw可以运行在.NET2和.NET4两个版本上,当然如果使用Win10等比较新的系统,最好下载更新版本的.NET。
-
所需文件:
- jre: java运行环境
- logs: 日志文件夹(可选)
- demo.exe:下载后会得到一个WinSW-x64.exe 我这里将它重名为demo.exe ,改成什么都可以便于使用即可。
- demo.jar: java 服务jar包
- demo.xml: 服务配置文件
- install.cmd: cmd脚本,用于添加服务(后续详解)
- uninstall.cmd: 删除服务脚本(同上)
-
修改配置:
<service> <!--windows服务id 必须唯一 --> <id>demo</id> <!-- windows服务名称--> <name>demo</name> <!-- 描述 --> <description>测试服务</description> <!-- 启动的可执行文件 %BASE%为当前demo.exe所在路径--> <executable>%BASE%\\jre\\bin\\java.exe</executable> <!-- 传递给可执行文件的参数--> <arguments> -jar \"%BASE%\\demo.jar\"</arguments> <!--日志模式 --> <logmode>rotate</logmode> <!-- 日志文件路径--> <logpath>%BASE%/logs</logpath> <!-- 开机自启 --> <startmode>Automatic</startmode> </service>
-
Winsw命令说明:
- demo install 安装服务
- demo uninstall 卸载服务
- demo start 开启服务
- demo stop 停止服务
- demo restart 重新启动服务
- demo status 检查服务的当前状态
- ps: 命令格式为 winsw.exe install ,例如当前为demo.exe isntall 可以简写为 demo isntall
-
install.cmd 安装服务
@echo.InstallService...... @echo off @demo install @demo start @echo off @echo.Success!
- uninstall.cmd 删除服务
@echo.UnInstallService @echo off @demo stop @demo uninstall @echo off @echo.DeleteSuccess!
- 启动后服务中会有相应的服务
可以win+R 在运行中输入 \"SERVICES.MSC\" 查看服务
二. 使用Inno Setup打包
-
详细请看上一篇 : Idea + exe4j + Inno Setup 将javaFx项目集成jdk打包成安装包 中 :三.Inno Setup 将exe程序集成jdk打包成安装程序
-
修改配置:
在[Run]下添加: Name: \"{autodesktop}\\{#MyAppName}\"; Filename: \"{app}\\{#MyAppExeName}\"; Tasks: desktopicon
添加[UninstallRun]节点 并添加一下内容 :Filename: \"{app}\\server\\uninstall.cmd\"; StatusMsg: \"正在删除服务...\";
完整配置文件:
; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName \"我的程序\" #define MyAppVersion \"1.5\" #define MyAppPublisher \"我的公司\" #define MyAppURL \"http://www.example.com/\" #define MyAppExeName \"demo.exe\" [Setup] ; 注: AppId的值为单独标识该应用程序。 ; 不要为其他安装程序使用相同的AppId值。 ; (若要生成新的 GUID,可在菜单中点击 \"工具|生成 GUID\"。) AppId={{335C4E66-1129-4B46-ACBE-B7CFC6845E40} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={autopf}\\{#MyAppName} DisableProgramGroupPage=yes ; 以下行取消注释,以在非管理安装模式下运行(仅为当前用户安装)。 ;PrivilegesRequired=lowest OutputDir=C:\\Users\\77175\\Desktop\\electron\\out OutputBaseFilename=demoSetup Compression=lzma SolidCompression=yes WizardStyle=modern [Languages] Name: \"chinesesimp\"; MessagesFile: \"compiler:Default.isl\" [Tasks] Name: \"desktopicon\"; Description: \"{cm:CreateDesktopIcon}\"; GroupDescription: \"{cm:AdditionalIcons}\"; Flags: unchecked [Files] Source: \"C:\\Users\\77175\\Desktop\\electron\\demo\\dist_electron\\win-unpacked\\demo.exe\"; DestDir: \"{app}\"; Flags: ignoreversion Source: \"C:\\Users\\77175\\Desktop\\electron\\源文件\\*\"; DestDir: \"{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs ; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion” [Icons] Name: \"{autoprograms}\\{#MyAppName}\"; Filename: \"{app}\\{#MyAppExeName}\" Name: \"{autodesktop}\\{#MyAppName}\"; Filename: \"{app}\\{#MyAppExeName}\"; Tasks: desktopicon [Run] Filename: \"{app}\\{#MyAppExeName}\"; Description: \"{cm:LaunchProgram,{#StringChange(MyAppName, \'&\', \'&&\')}}\"; Flags: nowait postinstall skipifsilent Filename: \"{app}\\server\\install.cmd\"; StatusMsg: \"正在注册服务...\"; [UninstallRun] Filename: \"{app}\\server\\uninstall.cmd\"; StatusMsg: \"正在删除服务...\";
来源:https://www.cnblogs.com/zwbsoft/p/15956985.html
本站部分图文来源于网络,如有侵权请联系删除。