有个任务,需要远程起调Windows64服务器下的程序,那么需要在Windows服务器中注入一个deamon服务,都知道Linux环境做成后台服务非常简单,nohup &很快能解决问题,但windows环境总是多重磨难。 
一开始我先问了个朋友,他回答是没做成服务,是把写个Pathon包在java外面,然后编译成exe,在启动中加入,我一听觉得有些麻烦,还需要绕一圈才能起调。 
先搜Java windows service, 推荐首选Wrapper,并且大名鼎鼎的ActiveMQ也是用的他做的服务,经过验证,配置很简单,copy wrapper.exe, wrapper.dll, wrapper.jar到自己的目录,并配置一个wrapper.conf, 测试

  1. wrapper.exe -c wrapper.conf

发现有问题,需要一个licence key,需要购买。 
也许还有方法去破解,不过看了一个老外说wrapper对windows64位并不免费,并推荐Procrun之后,决定转到这一阵地,加上大名鼎鼎的Tomcat也是用它做的服务。整个配置如下:

1.下载prunsrv 
http://archive.apache.org/dist/commons/daemon/binaries/windows/ 
下载commons-daemon-1.0.8-bin-windows.zip 
网上找这个不容易,后来才在commons-daemon-1.0.8-bin-windows.zip里面找到这个,一般会找到http://commons.apache.org/daemon/download_daemon.cgi,这里面并没有prunsrv.exe 
解包后,64位机器用amd64/prunsrv.exe

2.解压后复制文件 
a. copy commons-daemon-1.0.8-bin-windows/amd64/prunsrv.exe to your app path 
这是做服务的执行程序 
b. copy commons-daemon-1.0.8-bin-windows/prunmgr.exe 并改名 yourappname.exe 
监控服务配置及运行的程序

3.写两个脚本 
a.一个安装bat

  1. @echo off
  2. set LIB_HOME=******
  3. set APP_HOME=******
  4. %APP_HOME%\prunsrv.exe //IS//StartService --DisplayName="Start Service" --Description="Start a server." ^
  5. --Install=%APP_HOME%\prunsrv.exe --Jvm=%JAVA_HOME%\jre\bin\server\jvm.dll --JvmMs=256 --JvmMx=1024 ^
  6. --StartMode=jvm --Startup=auto --StopMode=jvm --StartClass= --StartParams= ^
  7. --Classpath=%LIB_HOME%\*.jar; ^
  8. --LogPath= --LogPrefix=

^是windows命令的折行符,为了避免在一行中写过长的命令。(Linux 是\) 
在dos环境下执行这个脚本,执行后 
这样可以在控制面板-->管理工具-->服务里面可以看到名称为StartService的服务 
注意:--install=后面不要省%APP_HOME%\,不然会报告文件找不到 
补充一个exe方式的服务配置

  1. @echo off
  2. set APP_HOME=******
  3. %APP_HOME%\prunsrv.exe //IS//StartService --DisplayName="Start Service" --Description="Start a server." ^
  4. --Install=%APP_HOME%\prunsrv.exe ^
  5. --StartMode=exe --Startup=auto --StartPath=%APP_HOME% --StartImage=%APP_HOME%\appname.exe ^
  6. --LogPath=./logs --LogPrefix=

b.写一个uninstall脚本

  1. @echo off
  2. set APP_HOME=******
  3. %APP_HOME%\prunsrv.exe //DS//StartService

这个可以卸掉install的服务 
c.更详细的配置文档可以看apache文档 
http://commons.apache.org/daemon/procrun.html

Windows 64位环境的Java 服务配置的更多相关文章

  1. windows 64位环境下php执行环境部署配置

    1.下载安装包 地址可以网上找,我下载的是php-5.6.27-Win32-VC11-x64.zip 2.解压安装包,我的解压到D:\tools\php5.6 3.配置php.ini 在解压的目录中, ...

  2. rabbitMQ 在 windows 64位环境下无法启动(提示乱码)的解决方法

    执行start命令时,提示乱码 解决方法: Set the environment variable “RABBITMQ_BASE” to “c:\rabbitmq”, uninstall the s ...

  3. Windows 64位系统下安装JAVA环境

    文件名称:jdk-7u51-windows-x64 下载Windows 64位平台的JDK安装文件. 安装 1.双击打开下载好的文件,点击“下一步”开始安装. 2. ①默认选择安装全部功能,不做调整. ...

  4. IIS7+windows 64位配置注意事项

    问题和解决办法 1  如果网站为Asp:再asp中注意启用父路径 2  操作必须使用一个可更新的查询:给用户iis_iusrs 一个完全控制的权限 3  Windows(64位IIS)未在本地计算机上 ...

  5. win7 64位环境下配置汇编环境和程序设计

    下载dosbox,并解压安装 下载地址: http://pan.baidu.com/s/1eRJbJAq 默认安装到C:\Program Files (x86)\DOSBox-0.74 安装成功后,双 ...

  6. Windows 64 位系统下 Python 环境的搭建

    Windows 64 位开发环境 注意:本教程适用于 Windows 7 64 位操作系统 及 Windows 10 64 位操作系统,其他系统尚未经过校验. 安装 IDE PyCharm 下载:ht ...

  7. 【Oracle】在WIN NT 64位环境下安装win64_11gR2_database。并用PL/SQL连接

    因为现在大多数服务器环境均为64位环境,而且有一部分使用的windows server的环境,在此做了一番小研究,如何在64位环境下安装oracle11g_64bit服务端 (1)首先www.orac ...

  8. SSIS 64位环境访问Oracle11g

    SSIS 为了要能够在64位的机器上面让SSIS存取Oracle,当然需要安装64位的Oracle Provider,但是遇到最大的问题在于SSIS在执行的时候分成两种组件,分别是DTExec.exe ...

  9. Windows 64位系统安装Apache2.4

    Windows 64位系统安装Apache2.4 来自:百度经验:jingyan.baidu.com 现在大部分一键安装包多是32位的,并不支持64位,直接在64位的系统上使用会报错的,所以我这里就来 ...

随机推荐

  1. Python2.7-SciPy

    SciPy函数库在NumPy库的基础上增加了众多的数学.科学以及工程计算中常用的库函数.例如线性代数.常微分方程数值求解.信号处理.图像处理.稀疏矩阵等等 1.最小二乘拟合 详细介绍:https:// ...

  2. AS3.0 自定义右键菜单类

    AS3.0 自定义右键菜单类: /** * 自定义右键菜单类 * 自定义菜单项不得超过15个,每个标题必须至少包含一个可见字符. * 标题字符不能超过100个,并且开头的空白字符会被忽略. * 与任何 ...

  3. 20155234 Exp2 后门原理与实践

    Windows获得Linux Shell 1.查看ip 2.监听端口 3.实验成功如下图 Linux获得Win Shell 1.查看虚拟机ip 2.监听端口 3.实验成功如下图 使用NC传输数据 1. ...

  4. Hadoop开发第2期---虚拟机中搭建Linux

    注:关于如何将hadoop源码导入Eclipse详见http://pan.baidu.com/s/1hq8ArUs 一.Hadoop配置软件(我的电脑是Windows7旗舰--64bit) 1. VM ...

  5. Android环境下使用call_usermodehelper()以及调试

    有时候设备驱动需要做一些与其他的设备通信的操作,但是驱动本身又不可以去实作,那这个时候就可以通过调用用户态的软件,通过这个软件和其他的设备进行通信. 那在内核态如何去调用用户态的程序呢?call_us ...

  6. 记一次 java 连接 linux ssh服务 权限验证失败的原因和解决过程

    下面的问题我是通过之前的ssh测试类找出原因的,因为我的测试类跑通了,但是程序跑不通,看了一下源码发现还有一处没有进行解密,所以才会权限验证失败. // 出现权限验证失败的原因就在这里,因为老板要求对 ...

  7. sql优化详细介绍学习笔记

    因为最近在面试,发现sql优化这个方面问的特别特别的多.之前都是零零星星,不够全面的了解一点,刚刚在网上查了一下,从 http://blog.csdn.net/zhushuai1221/article ...

  8. 软件测试 —— Bug

    [Bug规范] Bug标题中需包含Bug的具体位置并以[]标注 举例:[模块-子模块-页面]XXXXXXXXXXXX Bug标题尽量简明 做什么操作 + 出现什么结果,比如(点击提交按钮,出现卡顿现象 ...

  9. 软件测试_APP测试_主要测试内容

    最近要测试手机端APP,所以查找了一下有关APP测试需要注意的事项,做了一下总结.如有补充,欢迎评论! 手机APP测试与WEB测试其实相似,但是也有特别需要注意的一些不同点,此处只列出部分注意事项,相 ...

  10. 能帮我们学习吉他的音乐软件——Guitar Pro

    Guitar Pro是一款十分好用的吉他软件,也是目前广大音乐爱好者最喜欢的多音轨的音谱编辑软件.支持MIDI.MusicXML.PTB.GTP等多种格式文件的导入/导出. Guitar Pro 7. ...