Wrapper用途在做完一个项目程序后,有时会有两种需求想法:在每次机器重启后自动运行程序。在程序运行过程中如果发生了死锁、内存溢出或程序崩溃等问题时程序能自动重启。当然。要实现这两种效果的方案有很多。可以...
Wrapper用途
在做完一个项目程序后,有时会有两种需求想法:
- 在每次机器重启后自动运行程序。
- 在程序运行过程中如果发生了死锁、内存溢出或程序崩溃等问题时程序能自动重启。
当然。要实现这两种效果的方案有很多。可以在系统引导文件中加入开机运行程序引导,也可以写一个系统监听程序等等。
现在有一个更简单的解决方案。有一个java程序叫Java Service Wrapper。这是用来在windows或unix/linux系统中将java程序包装成系统服务并执行守护进程。
Java Service Wrapper有三个版本。professional/standard/community 前两个版本要收费功能也更多。对我们来说,社区版的已经够用了,(对于死锁重启需要收费版的)。
分析
从软件的名子上就能看出来。这个软件是用来包装的。我们的程序完成以后会有一个main入口。wrapper就是将这个main方法进行包装再提供自己的一个main入口。这样,我们在运行时都是运行的wrapper的程序。它会建立各种监控和服务,在建立完成后再加载运行被包装的方法。等监控到运行的程序出问题了就会进行相应的处理。
文件解释
所需文件(以windows版本为例)
1.从官网 http://wrapper.tanukisoftware.com 上下载wrapper的软件。

2.我们只需要几个核心的文件
wrapper.jar 核心文件,位于lib文件夹中
wrapper.exe 因为是在windows系统中运行所以需要。位于bin文件夹中
wrapper.dll 因为是在windows系统中运行所以需要。 位于lib文件夹中
wrapper.conf 核心配置文件,位于src/conf文件夹中。
实现方式
针对不同程序有不同的实现方式:
1.如果你的程序是不间断运行的。则只需要设置配置文件即可。
2.如果你的程序只是在系统启动时运行一次,或不需要连续运行的,则要加入入口包装类。不然,虽然你的程序已经执行成功且退出了(如:在系统启动时检查下环境再给你的提示信息就结束)。但wrapper会认为你的程序不应该结束,会不停的重启你的服务。这时你要加入包装类就没有这个问题了。
示例
通用配置
程序不间断运行
系统启动时运行一次
本文标题为:Java Service Wrapper 发布Java程序为Windows服务
基础教程推荐
- java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法 2023-09-01
- Java多线程学习笔记之三内存屏障与Java内存模型 2023-09-01
- 关于Java双大括号{{}}的具体使用 2023-03-15
- 一文带你搞懂Java中方法重写与方法重载的区别 2023-07-14
- Spring Cloud Config分布式配置中心使用介绍详解 2023-05-07
- RocketMQ Push 消费模型示例详解 2023-05-24
- Java Web开发中过滤器和监听器使用详解 2023-06-30
- MyBatis-Plus自定义通用的方法实现 2023-07-15
- Java实现插入排序算法可视化的示例代码 2023-04-23
- Java List的get方法 2023-10-08
