http://www.cppblog.com/aurain/archive/2014/01/23/205534.aspx

准备

使用工具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目录.

安装脚本

         @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

 

卸载脚本

         @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包封装成服务程序的更多相关文章

  1. Windows下将jar包封装成服务程序

    1 准备 使用工具Procrun(http://commons.apache.org/proper/commons-daemon/procrun.html),下载地址(http://archive.a ...

  2. Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误

    上一篇随笔中已经说了简单的Jar是如何封装的,但是我的需求是根据TIPTOP的查询条件产生XML文件并上传到FTP主机中,那么就要涉及到XML生成的方法和FTP上传的方法 所以在Eclipse写的时候 ...

  3. Oracle调用Java方法(上)如何使用LoadJava命令和如何将简单的Jar包封装成Oracle方法

    最近在工作中遇到了遇到了一个需求需要将TIPTOP中的数据导出成XML并上传到FTP主机中,但是4GL这方面的文档比较少最终决定使用Oracle调用Java的方法,在使用的过程中发现有很多的坑,大部分 ...

  4. windows下将jar包打入maven仓库

    mvn install:install-file -DgroupId=org.csource -DartifactId=fastdfs-client-java -Dversion=1.27 -Dpac ...

  5. windows下protobuf jar包的编译

    0.如果你不想手动编译生成,请直接跳到最后下载附件. 1.下载protobuf release版本:https://github.com/google/protobuf/releases,protoc ...

  6. Java Service Wrapper将jar包安装成Windows服务

    刚接触java,第一次使用Java开发windows服务,也是刚不久看了SSM框架 简直也是一头雾水,不过只要用心理解,其实很简单,下面有详细的步骤,包学包会 在windows上运行jar包,需要在工 ...

  7. Windows/Linux下引用jar包,并用javac/java编译运行

    Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, ja ...

  8. jar包打包成exe示例(基于maven项目)

    jar包打包成exe示例(基于maven项目) 说明 针对基于maven的Java项目,通常会打包成jar, 如果要把jar文件包装成exe文件,仅需要在pom.xml配置文件中增加一个插件即可 这里 ...

  9. idea lib下有jar包但是仍然报错 找不到类

    现象: idea lib下有jar包但是仍然报错 找不到类 但是有个奇怪现象 同样的配置下项目在eclipse中可以正常编译 启动. package com.puhui.car.aspect; imp ...

随机推荐

  1. ubuntu下使用命令行创建一个android项目

    在ubuntu中配置好jdk和android_sdk环境后,可以通过命令行方式创建一个android工程. 具体命令如下: android create project --target <ta ...

  2. BT Smart vs ANT+ 技术孰优孰劣?

    自从Bluetooth SIG提出Bluetooth 4.0,其BLE(Bluetooth Low Energy)开始用于穿戴式电子,而后也用于iBeacon室内定位,更之后Bluetooth 4.1 ...

  3. [Drools]JAVA规则引擎 -- Drools 2

    上一篇文章 http://blog.csdn.net/quzishen/archive/2011/01/25/6163012.aspx 描述了一些常用的drools的语法标签和一个模拟实例即发送积分的 ...

  4. Android切换页面效果的实现一:WebView+ViewFlipper

    前言: 这两周在帮学校做一个新生入学用的“新里程”的项目,要做到页面切换阅读的效果,自己百度了下,找到普遍是使用WebView+ViewFlipper的实现方法,但这种方法不能满足我的要求,因为它很难 ...

  5. poj2509---抽k根烟就换一支,求能抽烟的总数

    #include <stdio.h> #include <stdlib.h> int main() { int now,k; while(scanf("%d %d&q ...

  6. dataGuard client 自动切换

    使用dataguard作为HA方案,要解决的一个问题在于:后台数据库发生了切换,client连接如何做到自动切到新的primary数据库上? 如果做通用的方案,需要客户端自己提供自动重连的能力,这点大 ...

  7. Babelfish(二分)

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 37238   Accepted: 15879 Descr ...

  8. HP DL360 G7通过iLO部署系统

    HPDL360 G7通过iLO部署系统 HP DL360 G7是没有光驱的服务器,可使用USB外置光驱.PXE网络安装.ILO方式的安装操作系统 一.HP iLO 简介 iLO 是一组芯片,内部是vx ...

  9. MySQL数据处理函数

    数据处理函数 有时从数据库表中获取到的数据须要进行一些处理. 如将小写字母替换为对应的大写字母.这个处理过程能够在客户机上进行.也能够在数据库上进行. 数据库上进行会更高效.数据库中有对应的数据处理函 ...

  10. android可拖动排序GridView实现

    经常使用今日头条.网易新闻的同学们应该都会注意到用于管理多个频道的可拖动排序GridView,下面介绍一下可拖动的DragGridView的实现方法.代码放在GitHub上https://github ...