百木园-与人分享,
就是让自己快乐。

electron集成Java服务端制作windows安装包

一. 使用Winsw将jar包制作成windows服务

  1. winsw: 

   它是一个开源单文件的可执行exe文件,可以再 Github 上下载,一般来说当然是下载最新的。winsw可以运行在.NET2和.NET4两个版本上,当然如果使用Win10等比较新的系统,最好下载更新版本的.NET。

  1. 所需文件:

    • jre: java运行环境
    • logs: 日志文件夹(可选)
    • demo.exe:下载后会得到一个WinSW-x64.exe 我这里将它重名为demo.exe ,改成什么都可以便于使用即可。
    • demo.jar: java 服务jar包
    • demo.xml: 服务配置文件
    • install.cmd: cmd脚本,用于添加服务(后续详解)
    • uninstall.cmd: 删除服务脚本(同上)
  2. 修改配置:

    <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>
  3. Winsw命令说明:

    • demo install 安装服务
    • demo uninstall 卸载服务
    • demo start 开启服务
    • demo stop 停止服务
    • demo restart 重新启动服务
    • demo status 检查服务的当前状态
    • ps: 命令格式为 winsw.exe install ,例如当前为demo.exe isntall 可以简写为 demo isntall
  4. install.cmd 安装服务

    @echo.InstallService......
    @echo off
    @demo install
    @demo start
    @echo off
    @echo.Success!

     

  5. uninstall.cmd 删除服务
    @echo.UnInstallService
    @echo off
    @demo stop
    @demo uninstall
    @echo off
    @echo.DeleteSuccess!

     

  6. 启动后服务中会有相应的服务

    可以win+R 在运行中输入 \"SERVICES.MSC\" 查看服务

    

 

 

二. 使用Inno Setup打包

  1. 详细请看上一篇 : Idea + exe4j + Inno Setup 将javaFx项目集成jdk打包成安装包 中 :三.Inno Setup 将exe程序集成jdk打包成安装程序

  2. 修改配置:

  在[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
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » electron集成Java服务端制作windows安装包

相关推荐

  • 暂无文章