Windows下将jar包封装成服务程序
1 准备
使用工具Procrun(http://commons.apache.org/proper/commons-daemon/procrun.html),下载地址(http://archive.apache.org/dist/commons/daemon/binaries/windows/),tomcat也是用其做服务程序。最新版的是commons-daemon-1.0.15-bin-windows.zip(更新日期2013-04-02 14:03),32位系统使用目录下默认的prunsvr.exe,64位系统使用目录下子目录的amd64\prunsvr.exe。
假设需要部署的jar包名称为MyService.jar,我们先创建目录MyService,将MyService.jar及prunsvr.exe都拷到MyService目录,将prunsvr.exe重命名为MyService.exe。如果MyService.jar需要使用配置文件,如配置文件存放在conf目录,那么需要将conf目录一并拷到MyService目录.
2 安装脚本
@echo off
SET PR_PATH=%CD%
SET PR_EXE=MyService.exe
SET PR_SERVICE_NAME= MyService
SET PR_DISPLAY_NAME= MyService
SET PR_DESCRIPTION= MyService for XXX,Copyright XXXXXX.
SET PR_JAR= MyService.jar
SET START_CLASS=com.xxx.MyService
SET START_METHOD=main
SET STOP_CLASS=java.lang.System
SET STOP_METHOD=exit
SET STOP_PARAMS=0
%PR_PATH%\%PR_EXE% //IS//%PR_SERVICE_NAME% --DisplayName="%PR_DISPLAY_NAME%" --Description="%PR_DESCRIPTION%" --Install="%PR_PATH%\%PR_EXE%" --JvmMs=2000 --JvmMx=2000 --JvmSs=1024 ++DependsOn=MSSQLSERVER --Jvm=auto --Startup=auto --StartMode=jvm --StartClass=%START_CLASS% --StartMethod=%START_METHOD% --StopMode=jvm --StopClass=%STOP_CLASS% --StopMethod=%STOP_METHOD% ++StopParams=%STOP_PARAMS% --Classpath="%PR_PATH%\%PR_JAR%"
%PR_PATH%\%PR_EXE% //ES//%PR_SERVICE_NAME%
@echo on
3 卸载脚本
@echo off
SET PR_PATH=%CD%
SET PR_SERVICE_NAME=MyService
SET PR_EXE= MyService.exe
%PR_PATH%\%PR_EXE% //DS//%PR_SERVICE_NAME%
@echo on
4 prunsvr参数说明
prunsvr是一个可以将普通的程序包装成服务程序的命令行工具,其不仅适应于java程序,也适应于其它exe可执行程序。
prunsvr命令格式//XX[//ServiceName]。
主要命令行
//TS 控制台方式运行
//IS 安装服务
//ES 启动服务
//SS 停止服务
//DS 删除服务
主要命令行参数
命令行参数前缀为--。如果前缀为++,那么这些参数会被附加在已经存在的选项后面。
--Description 服务名称的描述 (最大1024字符)
--DisplayName服务显示的名称
--Install procrun.exe //RS//ServiceName 安装镜像
--Startup 服务启动模式,自动auto或者人工manual,默认为manual
--Type 服务类型可以是交互式的桌面程序interactive。使用和这个选项仅限于本地系统帐号
++DependsOn 服务需要依赖的其他服务。依赖的服务使用 # 或者 ; 字符分割
--Classpath 对于java类,设置jar包路径
--JvmMs 初始内存池,单位 MB
--JvmMx 最大内存池,单位 MB
--JvmSs 线程堆栈,单位 KB
更多帮助请参考官方帮助说明文档。
Windows下将jar包封装成服务程序的更多相关文章
- 转--Windows下将jar包封装成服务程序
http://www.cppblog.com/aurain/archive/2014/01/23/205534.aspx 1 准备 使用工具Procrun(http://commons.apache. ...
- Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误
上一篇随笔中已经说了简单的Jar是如何封装的,但是我的需求是根据TIPTOP的查询条件产生XML文件并上传到FTP主机中,那么就要涉及到XML生成的方法和FTP上传的方法 所以在Eclipse写的时候 ...
- Oracle调用Java方法(上)如何使用LoadJava命令和如何将简单的Jar包封装成Oracle方法
最近在工作中遇到了遇到了一个需求需要将TIPTOP中的数据导出成XML并上传到FTP主机中,但是4GL这方面的文档比较少最终决定使用Oracle调用Java的方法,在使用的过程中发现有很多的坑,大部分 ...
- windows下将jar包打入maven仓库
mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=1.27 -Dpac ...
- windows下protobuf jar包的编译
0.如果你不想手动编译生成,请直接跳到最后下载附件. 1.下载protobuf release版本:https://github.com/google/protobuf/releases,protoc ...
- Java Service Wrapper将jar包安装成Windows服务
刚接触java,第一次使用Java开发windows服务,也是刚不久看了SSM框架 简直也是一头雾水,不过只要用心理解,其实很简单,下面有详细的步骤,包学包会 在windows上运行jar包,需要在工 ...
- Windows/Linux下引用jar包,并用javac/java编译运行
Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, ja ...
- jar包打包成exe示例(基于maven项目)
jar包打包成exe示例(基于maven项目) 说明 针对基于maven的Java项目,通常会打包成jar, 如果要把jar文件包装成exe文件,仅需要在pom.xml配置文件中增加一个插件即可 这里 ...
- idea lib下有jar包但是仍然报错 找不到类
现象: idea lib下有jar包但是仍然报错 找不到类 但是有个奇怪现象 同样的配置下项目在eclipse中可以正常编译 启动. package com.puhui.car.aspect; imp ...
随机推荐
- Android的崩溃类型总结
看了篇腾讯的沙龙分享,觉得很不错,在这里分享给大家 crash的大致划分:
- 文献综述十六:基于UML的中小型超市管理系统分析与设计
一.基本信息 标题:基于UML的中小型超市管理系统分析与设计 时间:2016 出版源:Journal of Xiangnan University 文件分类:uml技术系统的研究 二.研究背景 开发一 ...
- 手机端页面调试工具-vconsole使用
用的是VUE-CLI3第一步.安装vconsole npm install vconsole 第二步.创建js文件并写入内容 import Vconsole from 'vconsole' let v ...
- Git学习系列之Git是什么?
前言 现在主流IDE里,都集成git了. https://git-scm.com/docs 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google ...
- jquery metadata 详解
1.0的版本是这样的$.meta 2.0的版本是这样的$.metadata 很多插件的编写都用到了这个插件,个人感觉这个东西应该是jquery官方的.推荐使用2.0的版本, 因为现在官方上就是2.0的 ...
- p2p的UDP打洞原理
>>>>>>>>>>>>>>>>>>>>>>>>> ...
- Spring Boot学习笔记-配置devtools实现热部署
写在前面 Spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. de ...
- 深入理解JavaScript系列(46):代码复用模式(推荐篇)
介绍 本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用. 模式1:原型继承 原型继承是让父对象作为子对象的原型,从而达到继承的目的: function object(o) { fun ...
- Silverlight & Blend动画设计系列九:动画(Animation)与视图状态管理(Visual State Manager)
Silverlight中的动画(Animation)与视图状态管理(Visual State Manager) 结合使用是非常常见的,动画用于管理对象在某段事件段内执行的动画动作,视图状态管理则用于控 ...
- 静态代码块,构造代码块,main()
静态代码块 随Class 加载而加载,为Class 作初始化: 在main() 之前加载: 只执行一次: 构造代码块 随对象的创建而加载,为对象作初始化 public class day04 { pu ...