如何使用SpringBoot jar包制作Windows客户端安装程序


浏览:539 次

出身背景

Web面打印功能要求。一开始,Lodop插件用于与用户的本地打印机交互。它的功能非常强大和完整。然而,仍有许多要求无法涵盖,例如文本旋转(图像旋转的定义存在问题)、价格标签和其他精确打印、打印性能等方面无法满足或存在缺陷。因此,我们需要自己开发一个客户端打印插件服务。解决方案很简单。服务器生成打印结果的pdf文件,客户端打印插件服务下载该pdf文件并调用用户的本地打印机进行打印。打印插件服务是使用Spring Boot开发的,它提供诸如获取本地打印机列表、调用打印机等接口服务。这扩展到如何让用户方便地安装插件服务,并为用户提供自动启动计算机的功能。

开发环境描述

操作系统:windows 10

Java开发环境:32位jdk1.8(Spring Boot程序与XP兼容)

Python开发环境:Python3.6.5+wxPython4.0.6+PyInstaller3.5

C语言开发环境:VC++6.0(为了使启动程序exe与XP兼容)

安装程序创建工具:Inno Setup 5.6.1-unicode(6.0版不支持XP,您必须下载unicode版本才能在安装界面上支持中文)

MT.exe:为启动器注入管理员许可证权限。执行

Execscope公司。exe:查看exe程序支持的Windows操作系统版本。

解决方案

方案一

实施过程

1.使用winsw Exe将打印插件服务的jar包转换为Windows服务,并将其设置为自启动。

winsw。执行2.3

创建一个新的xml配置文件winsw。xml,并将其放在同一目录中,

<服务>

宝石盒

宝石盒

GemBox打印插件服务</description>

<可执行文件>。\jre\bin\javaw。exe

自动

-jar“.\lib\gem-box-service.jar-”“-spring.config.location=classpath:/application.yml,./conf/application.properties”

重置

打开当前目录并执行以下dos命令

#安装服务

>winsw。exe安装

#启动服务(虽然是自启动模式,但安装后不会自动启动)

>净启动GemBox

#卸载服务

>winsw。exe卸载

缺点

虽然Web服务正常启动,但jar需要与用户的本地打印机交互,因此在win10系统下调用打印相关接口时没有响应。故障排除后,发现这是用户权限问题。自制Windows服务默认由系统用户启动。但是,它无法获得与打印机交互的权限,因此必须以管理员用户模式启动打印插件服务。(尽管winsw.exe也可以作为指定用户的自启动服务安装,但必须配置用户名和密码,不同用户不能使用。)。

与其他操作系统的兼容性:XP/win7/vista未知,尚未验证。

方案二

实施过程

为了解决使用本地用户帐户启动插件服务的问题,发现一些软件会通过观察日常使用中的软件程序,在Windows的任务调度程序中自动创建一个计划任务,并通过计划任务触发程序启动。立即开始思考,找出如何使用dos命令->schtasks.exe创建任务计划

使用bat脚本提供安装、卸载、启动和停止服务脚本。

安装脚本install.bat

@回声关闭

::输入脚本目录

cd/D%~dp0

::schtasks/Create/tn GemBox/tr%cd%\GemBox。bat/sc ONLOGON/RL最高

::schtasks/Delete/tn testschtask

::在创建新任务计划之前删除该任务计划。

schtasks/删除/tn GemBox/F

::XP系统不支持/RL参数,程序目录需要双引号

::用户登录并执行指定的bat脚本。%cd%指向脚本执行的目录。

schtasks/Create/tn GemBox/tr“%cd%\GemBox.bat”/sc ONLOGON

@echo“安装成功!”

暂停

启动脚本gembox.bat

@回声关闭

::输入脚本目录

cd/D%~dp0

::重命名javaw。将jre/bin中的exe转换为GemBox。exe。为了便于以后按名称进行进程杀戮

start.\jre\bin\GemBox-jar.\lib\GemBox服务。jar--spring.config.location=classpath:/application.yml,./conf/application.properties

出口

停止脚本Stop.bat

@回声关闭

相关资讯:
什么是新订单系统

什么是新订单系统

查看
农产品分销软件如何帮助农产品分销

农产品分销软件如何帮助农产品分销

查看
如何成为一名程序员?这是重要的几点

如何成为一名程序员?这是重要的几点

查看
什么是域名归档?我们为什么要归档?备案后,您将获得以下好处!

什么是域名归档?我们为什么要归档?备案后,您将获得以下好处!

查看
上网速度慢。我该怎么办?

上网速度慢。我该怎么办?

查看