Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java魔法堂:以Windows服务的形式运行Java程序

Java魔法堂:以Windows服务的形式运行Java程序

作者头像
^_^肥仔John
发布于 2018-01-18 06:40:07
发布于 2018-01-18 06:40:07
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

一、前言                            

  由于防止维护人员误操作关闭Java控制台程序,因此决定将其改造为以Windows服务的形式运行。弄了一个上午总算搞定了,下面记录下来,以供日后查阅。

二、Java Service Wrapper                  

  官网地址:http://wrapper.tanukisoftware.com/doc/english/download.jsp

  JavaServiceWrapper以守护进程或windows服务的方式运行java程序。JSW提供四种方案改造原有项目,以实现守护进程或windows服务的方式运行。而且还提供JVM监控功能和自动重启功能,反正十分强大的样子。

  方式1:WrapperSimpleApp

  用于通过同一个类实现启动和关闭的程序。   官方推荐使用该方式加工原有项目,好处是简单,且不用修改原有项目的代码。

步骤1:下载并解压得到工具包,目录结构如下    

    /     |-- bin,wrapper控制windows服务的bat文件     |-- conf,wrapper配置文件     |-- doc,教程     |-- lib,wrapper的依赖包     |-- logs,日志     |-- src,模板       |-- conf       |-- bin

步骤2:搭建项目结构:新建项目发布目录(假设为agent),然后将src下的conf和bin复制到agent下,并且将conf和bin下的文件重命名,去掉`.in`后缀。然后将bin/wrapper.exe复制到agent/bin/下,再将lib复制到agent下,得到目录结构如下

    agent      |-- lib          |-- wrapper.dll        |-- wrapper.jar        |-- conf          |-- wrapper.conf        |-- bin        |-- wrapper.exe        |-- 一堆bat文件      最后将原有项目的文件复制到bin目录下。

步骤3:配置agent/conf/wrapper.conf的参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 配置java命令路径
wrapper.java.command=jre/bin/java

# 配置CLASSPATH路径(并不会修改全局的环境变量)
# 若原有项目还依赖其他jar包,均需要添加进来
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=.

# 配置lib路径
wrapper.java.library.path.1=../lib

# 配置服务的main class(就是原有项目的程序入口类)
wrapper.app.parameter.1=agent.Daemon

# 配置wrapper日志文件
wrapper.logfile=logs/Agent.log

# 配置系统服务名称
wrapper.ntservice.name=AgentService

# 配置系统服务显示的名称
wrapper.ntservice.displayname=AgentService

# 配置系统服务描述
wrapper.ntservice.description=AgentService

# 配置系统服务的启动方式,取值范围是AUTO_STARTDEMAND_START
wrapper.ntservice.starttype=AUTO_START

# 配置内存溢出则重启服务
wrapper.filter.trigger.1001=Exception in thread "*" java.lang.OutOfMemoryError
wrapper.filter.allow_wildcards.1001=TRUE
wrapper.filter.action.1001=RESTART
wrapper.filter.message.1001=The JVM has run out of memory.

步骤4:安装、卸载服务

           点击对应的Install.bat和Uninstall.bat即可。

  2. 方式2:WrapperStartStopApp

  用于像tomcat那样,启动程序和关闭程序是分开的项目。该方式同样不用修改原来项目的代码。

  3. 方式3:WrapperListener

  该方式需要修改原来项目的代码,但最灵活。

  4. 方式4:WrapperJarApp

  用于原有项目已经打包为jar或war包的情况,配置方式与`WrapperSimpleApp`相似,但`wrapper.app.parameter.1=jar或war包路径`。该方式同样不用修改原来项目的代码

三、总结                                

    官方文档以JBOSS为例子说明WrapperSimpleApp的使用,十分不好懂,幸好有前人记录实操过程我才从苦海得救,感谢感谢。

四、参考                                

http://blog.csdn.net/arjick/article/details/4526392

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-10-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动
前几天总结了使用JSVC来设置tomcat作为linux服务并且开机自动启动,但是如果要更专业一点来控制tomcat的启动,使用Java Service Wrapper应该不失为一个好的选择,下面来总结一下Java Service Wrapper在Linux中对于tomcat启动的设置:
全栈程序员站长
2021/05/19
1.6K0
使用 Java Service Wrapper 启动java后台进程服务
 Java Service Wrapper (http://wrapper.tanukisoftware.com/doc/english/product-overview.html)可以很方便得在各个平台(windows,linux,max os)管理Java进程,管理JVM,启动停止,开机启动,管理内存溢出的异常  标准版还可以发错误日志email,检测死锁 比自己写个启动脚本更为方便通用稳定,后台服务可以考虑使用JSW。 这里使用免费的社区版,可以先直接跑一下demo看效果。 基本原理就是 java o
架构师刀哥
2018/03/20
2.7K0
把java类变成 Windows NT服务的3中方法(使用 Java Serivce Wrapper)
最近制作小叮咚的时候,需要机器启动后自动运行小叮咚 , 所以就想仿照Tomcat那样把java类变成一个服务来运行. 于是找到了 Java Service Wrapper . 下面就是一些我要用到的地方. 把java类变成 Windows NT服务的3中方法(使用 Java Serivce Wrapper) 集成 Java Service Wrapper 的三种方法: 1 使用 WrapperSimpleApp 类启动您的应用程序,这是最简单的,也是Java Service Wrapper推荐使用的方法. 2 使用 WrapperStartStopApp 类. 这种方法和第一种不同的地方在于,可以使用一个类启动服务,另一个类来停止服务. 这一点特别像 Tomcat 这样的服务程序. 3 这种方法提供了较前两种方法更为灵活的方式实现服务.灵活的背后是需要写代码来完成. 具体来说就是实现WrapperListener接口,当用户的接口类启动后注册到WrapperManager. 这样就我们可以自定义服务接收的命令和相应的回应,比如启动和关闭服务等.
田春峰-JCJC错别字检测
2019/02/14
8570
基于nGrinder下的web网站性能测试
nGrinder 看名字估计很多人就猜到跟Grinder有关系。nGrinder是韩国一家公司居于Grinder二次开发的一个性能平台。nGrinder具有 开源、易用、高可用、高扩展等特性,在Grinder基础上实现了多测试并行,通过web管理,实现了集群,同时支持Groovy和Jython脚本语言,(官方上说,Groovy的性能会更好),也实现了对目标服务的监控以及插件的扩展,简单实现更多用户虚拟用户并发(官方上说,8G内存的4核cpu机器可以支持高到8000个虚拟用户)
用户6367961
2019/09/29
1.4K0
将Web项目War包部署到Tomcat服务器基本步骤
假设你本地JAVA的JDK安装的位置为:C:\Program Files\Java\jdk1.7.0_45。
用户3519280
2023/07/06
10.1K0
将Web项目War包部署到Tomcat服务器基本步骤
使用winsw将jar以windows服务的方式运行
但总会有一些特殊情况,如网络环境、设备限制,我们开发的jar不能部署到Linux设备上,必须要部署到windows上。
Blue_007
2023/10/31
3.5K3
使用winsw将jar以windows服务的方式运行
Linux下安装Zookeeper、Redis、Nexus和Jenkins
公司搞了个新的服务器,啥也没有,让我部署项目上去(本来老板是问我会不会,我想着我博客就是自己部署的,就说了会),没想到搞了两天。
sunonzj
2022/06/21
4.7K0
Linux下安装Zookeeper、Redis、Nexus和Jenkins
部署云服务器--(2) 配置服务器坏境 运行Java程序
上文我们成功申请到了阿里云服务器,这次我们需要把程序运行在服务器上了,下面我们分步骤来讲:
浩Coding
2019/07/02
4.8K0
部署云服务器--(2) 配置服务器坏境 运行Java程序
如何在Windows系统搭建好Spring Cloud Stream开发环境
当下微服务架构盛行,在Java语言世界最佳的微服务实践无疑是Spring Cloud。Spring Cloud顾名思义就是提供一系列云服务技术的技术解决方案组合,包含云配置、服务注册及发现、客户端弹性模式、服务路由、服务安全、服务日志跟踪及聚合和消息服务等等微服务技术解决方案。其中Spring Cloud Stream就是消息服务的技术解决方案。
leaforbook
2019/02/05
1.6K0
windows服务器使用Tomcat发布Springboot的war包项目
(1)Tomcat 8.x 下载地址:https://tomcat.apache.org/download-80.cgi
Mr.Vv
2022/05/11
1.5K0
windows服务器使用Tomcat发布Springboot的war包项目
把Maven的架构,用法,坑点介绍的清清楚楚
个人的一个小感受,学习一个新技术,应该以历史的眼光开看待这个新技术出现的原因,以及帮我们解决了什么问题。我们来回忆一下没有Maven的日子是怎么样的?
Java识堂
2019/05/21
5790
C# 创建安装Windows服务程序(干货)
最近在公司要求使用Windows服务作为消息队列的消费者,所以自行研究了一下C#中Windows服务如何创建以及如何使用,以及部署的方式。
郑子铭
2023/08/30
8040
C# 创建安装Windows服务程序(干货)
Tomcat应用容器安装和使用
描述:Apache Tomcat是美国Apache软件基金会的一款轻量级Web应用服务器,该程序实现了对Servlet和JSP的支持。 Tomcat是在Sun公司推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。 Tomcat本身完全用java语言编写,所以tomcat的运行需要java的支持,所以要先安装JDK才能运行;
全栈工程师修炼指南
2022/09/29
1.2K0
Tomcat应用容器安装和使用
Web-第二十五天 Maven学习一【悟空教程】
解决方案:maven对项目生命周期进行定义,规范,开发人员和测试人员使用maven软件完成构建。
Java帮帮
2018/07/27
8940
Web-第二十五天 Maven学习一【悟空教程】
把Maven的架构,用法,坑点介绍的清清楚楚
个人的一个小感受,学习一个新技术,应该以历史的眼光开看待这个新技术出现的原因,以及帮我们解决了什么问题。我们来回忆一下没有Maven的日子是怎么样的?
Java团长
2019/06/26
2.1K0
把Maven的架构,用法,坑点介绍的清清楚楚
web服务器软件:Tomcat入门(window安装和配置Tomcat)
进入官网 http://tomcat.apache.org/ 选择需要的版本和类型下载。
共饮一杯无
2022/11/28
1.6K0
web服务器软件:Tomcat入门(window安装和配置Tomcat)
Mycat 运行与基础操作3
我修改一下 schema.xml 里 dataNode 和 dataHost 的位置,让 dataHost 放在前面,然后尝试启动 mycat 服务
franket
2021/12/03
2680
Java远程调试(Remote Debugging)的那些事
这篇文章将研究如何处理和调试那些只发生在生产环境(或其他远程环境)而本地开发环境可能没办法重现的“问题”。任何碰到过这种情况的人都不得不承认,试图定位这种“问题”原因的过程,很大可能性是以一堆胡乱猜测而告终:一个非常耗时且低效的过程。
曲水流觞
2019/11/05
8.6K0
Java远程调试(Remote Debugging)的那些事
SSO统一身份认证——CAS Server6.3.x安装启动(一)
单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。
cn華少
2021/07/19
3.2K1
SSO统一身份认证——CAS Server6.3.x安装启动(一)
java 104规约_IEC104规约,Java开发主站程序
│ │ ├── ems.5987745583754844869.temp.db
全栈程序员站长
2022/08/31
2K2
推荐阅读
相关推荐
使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验