首页 归档 关于 文件 Github
×

发布Java程序为Windows服务 (含有Java环境)一

2020-06-23 13:24:52
J-Package
  • winsw
本文总阅读量(次):
本文字数统计(字):1.2k
本文阅读时长(分):5

描述

有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper 是目前较为流行的将Java程序部署成Windows服务的解决方案

下载serviceWrapper包

网址:https://www.krenger.ch/blog/category/windows/
20200623133038

下载zip压缩文件
20200623133123

解压serviceWrapper包

解压wrapper-windows-x86-64-3.5.43.zip
20200623133832
解压出来的文件多,但有些不是必须要的

注册一个简单的服务

准备一个目录 建议在非中文且不含有空格的目录下
目录结构如下:
20200623134921
lang目录是存放支持其他语言的语言包,一般用不到
mylib目录是存放我们的程序包

然后将下载的wrapper目录下的文件拷贝到我们上面建的目录:

···\bin\InstallTestWrapper-NT.bat           -> D:\test\java-service-hello\bin\InstallTestWrapper-NT.bat
···\bin\StartTestWrapper-NT.bat             -> D:\test\java-service-hello\bin\StartTestWrapper-NT.bat
···\bin\StopTestWrapper-NT.bat              -> D:\test\java-service-hello\bin\StopTestWrapper-NT.bat
···\bin\TestWrapper.bat                     -> D:\test\java-service-hello\bin\TestWrapper.bat
···\bin\UninstallTestWrapper-NT.bat         -> D:\test\java-service-hello\bin\UninstallTestWrapper-NT.bat
···\bin\wrapper.exe                         -> D:\test\java-service-hello\bin\wrapper.exe
···\conf\wrapper.conf                       -> D:\test\java-service-hello\conf\wrapper.conf
···\lib\wrapper.jar                         -> D:\test\java-service-hello\lib\wrapper.jar
···\lib\wrapper.dll                         -> D:\test\java-service-hello\lib\wrapper.dll

java程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.io.File;
import java.util.concurrent.TimeUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.file.FileAppender;
import cn.hutool.core.lang.UUID;
public class JarHelloApp {
public static void main(String[] args) {
while (true) {
try {
System.out.println("Hello World!");
String str = UUID.fastUUID().toString();
System.out.println(str);
//每隔3秒创建文件并写入内容
FileAppender appender = new FileAppender(new File("D:\\test\\jar\\"+str+".txt"), 16, true);
TimeUnit.SECONDS.sleep(3);
appender.append(DateUtil.now());
appender.flush();
appender.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

引入的依赖

1
2
3
4
5
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.7</version>
</dependency>

java程序打包

由于采用eclipse所有打包流程:项目邮件 -> Export -> Java/Runnable JAR file -> Next
20200623142924

导出项目设置
20200623143420

导出项目文件
20200623144319

将程序打成的包以及自己程序依赖的包放到mylib
20200623144449

修改配置文件

文件路径:D:\test\java-service-hello\conf\wrapper.conf
内容如下:

# jdk或者jre的java.exe路径,可通过环境变量获取
wrapper.java.command=%JAVA_HOME%/bin/java.exe
# wrapper.java.command=C:\Java\jre1.8.0_45\bin\java
# 日志级别
wrapper.java.command.loglevel=INFO
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# 执行的程序的main方法的类的路径
wrapper.app.parameter.1=com.demon.jar_hello.JarHelloApp
# 依赖的包,第一个是wrapper包,第二个是自己打的包以及程序依赖包
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../mylib/*.jar
# 固定写法,依赖的wrapper的包
wrapper.java.library.path.1=../lib
# 日志配置 按照日期每天创建文件
wrapper.logfile=../logs/wrapper.YYYYMMDD.log
wrapper.logfile.rollmode=DATE
# 服务名称以及描述信息
wrapper.console.title=jar hello Server
wrapper.name=jarhelloserver
wrapper.displayname=jar hello Server
wrapper.description=jar hello Server
# 更多配置可对 jvm 配置

测试注册服务

在服务目录下的bin目录下双击 TestWrapper.bat 文件,当程序执行正确时则表示可以注册服务
控制台测试
20200623150257

注册服务

在服务目录下执行(管理员模式)

注册服务命令
bin\wrapper.exe -i ..\conf\wrapper.conf

cmd结果
20200623151136
服务结果
20200623151201

启动服务命令
net start jarhelloserver
或者
bin\wrapper.exe -t ..\conf\wrapper.conf

cmd结果
20200623151449
服务结果
20200623151518

停止服务命令
net stop jarhelloserver
或者
bin\wrapper.exe -p ..\conf\wrapper.conf

cmd结果
20200623151717
服务结果
20200623151743

删除服务命令
sc delete jarhelloserver
或者
bin\wrapper.exe -r ..\conf\wrapper.conf

cmd结果
20200623151956

扩展 一

由于使用命名操作复杂,故在服务目录创建bat文件

install-service.bat

@echo off
start cmd /c "title install-service && bin\wrapper.exe -i ..\conf\wrapper.conf"

uninstall-service.bat

@echo off
start cmd /c "title uninstall-service && bin\wrapper.exe -r ..\conf\wrapper.conf"

start-service.bat

@echo off
start cmd /c "title start-service && bin\wrapper.exe -t ..\conf\wrapper.conf"

stop-service.bat

@echo off
start cmd /c "title stop-service && bin\wrapper.exe -p ..\conf\wrapper.conf"

扩展 二

我们可以用上面的service wrapper的bin包中的bat文件进行服务操作
将下载解压后的wrapper-windows\bin中的部分文件复制到我们的服务\bin目录下
20200623161942
我们只需要点击上面的bat文件即可实现上面的操作:

安装服务:InstallTestWrapper-NT.bat
查询服务:QueryTestWrapper-NT.bat
开启服务:StartTestWrapper-NT.bat
停止服务:StopTestWrapper-NT.bat
测试服务:TestWrapper.bat
卸载服务:UninstallTestWrapper-NT.bat

链接

发布Java程序为Windows服务 (不含有Java环境)二
发布Java程序为Windows服务 (修改配置参数,新增对 jvm 的配置)三
发布Java程序为Windows服务 - Windows Service Wrapper 四

完
发布Java程序为Windows服务 (不含有Java环境)二
SpringBoot配置RestTemplate

本文标题:发布Java程序为Windows服务 (含有Java环境)一

文章作者:十二

发布时间:2020-06-23 13:24:52

最后更新:2025-02-07 17:55:15

原始链接:https://www.zhuqiaolun.com/2020/06/1592889892770/1592889892770/

许可协议:署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

头像

十二

我想起那天夕阳下的奔跑,那是我逝去的青春。

分类

  • Blog4
  • ElasticSearch13
  • Git2
  • Go-FastDfs2
  • IDEA2
  • J-Package6
  • J-Tools21
  • Java2
  • JavaFx6
  • Kafka4
  • Linux2
  • Logger6
  • Maven5
  • MyBatis8
  • MyCat3
  • MySql2
  • Nginx5
  • OceanBase1
  • RabbitMq4
  • Redis6
  • SVN1
  • SpringBoot16
  • Tomcat6
  • WebService2
  • Windows2
  • kubernetes10

归档

  • 二月 20262
  • 一月 20261
  • 十二月 20253
  • 八月 20252
  • 六月 20251
  • 二月 20251
  • 十二月 20244
  • 八月 202416
  • 六月 20241
  • 九月 20231
  • 八月 20231
  • 七月 20232
  • 八月 20222
  • 三月 202214
  • 二月 20224
  • 十一月 20211
  • 七月 20215
  • 六月 20213
  • 五月 20213
  • 四月 20211
  • 三月 202116
  • 二月 20212
  • 一月 20211
  • 十一月 202014
  • 十月 20201
  • 九月 202014
  • 八月 20205
  • 七月 20204
  • 六月 20208
  • 五月 20208

作品

我的微信 我的文件

网站信息

本站运行时间统计: 载入中...
本站文章字数统计:105.8k
本站文章数量统计:141
© 2026 十二  |  鄂ICP备18019781号-1  |  鄂公网安备42118202000044号
驱动于 Hexo  | 主题 antiquity  |  不蒜子告之 阁下是第个访客
首页 归档 关于 文件 Github