有个任务,需要远程起调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. 关于MSCOCO_text数据集的探索

    最近需要做图片中文本识别的项目,然后为了快速验证模型,所以找到了mscoco-text数据集,网站1上是这么说的: 官网是这么说的: 然而,我下下来之后: 1 - 先导入: 2 - 其中key为'im ...

  2. handsontable合并项mergeCells应用及扩展

    由于我这个项目主要是配置多表头信息,主要使用了handsontabel合并项功能. 但是,在该功能使用过程中发现了一些问题和一些自己根据需要做的一些扩展 $("#topFieldDiv&qu ...

  3. CentOS 6.8 虚拟机安装详解

    第一步:安装 VMware 官方网站:www.vmware.com 下载百度云链接:http://pan.baidu.com/s/1bphDOWv 密码:0zix VMware 是一个虚拟 PC 的软 ...

  4. 基于Python自动发送QQ群消息

    1.准备工作 此次测试基于python3,需要安装qqbot.bs4.requests库. qqbot项目地址:https://github.com/pandolia/qqbot.git pip qq ...

  5. XSS跨站攻击(二)

    本人最近在学习XSS,想总结一下常见的XSS攻击的几种情况,刚好看到<防御 XSS 的七条原则>这篇文章,里面讲的七条防御原则不正是针对XSS的几种利用方式吗?于是,借来学习一下. 原则1 ...

  6. Class does not Implement Equals——Code Correctness(代码正确性)

        系列文章目录:     使用Fortify进行代码静态分析(系列文章) class does not implement equals(类未能实现Equals方法)   示例:  protec ...

  7. 汇编 EBP ,ESP 寄存器

    知识点:  CALL框架  EBP寄存器 栈底指针  ESP寄存器 栈顶指针 一.EBP栈底指针 EBP是一个特殊的寄存器,通过EBP+偏移量 可以访问CALL里边的局部变量.它的低16位叫BP ...

  8. Keras实现风格迁移

    风格迁移 风格迁移算法经历多次定义和更新,现在应用在许多智能手机APP上. 风格迁移在保留目标图片内容的基础上,将图片风格引用在目标图片上. 风格本质上是指在各种空间尺度上图像中的纹理,颜色和视觉图案 ...

  9. MySQL主从报错1594

    一.主从报错 Relay log read failure 问题原因,MySQL主从使用的是kvm虚拟机,物理机超分严重,在负载高的情况下会kill掉占用资源最多的虚拟机,再启动后导致主从失败 mys ...

  10. HTML基础之HTML标签

    前端的三把利器 HTML:赤裸的一个人 CSS:华丽的衣服 JS/JavaScript:赋予这个人的行为,也就是动起来 HTML(超文本标记语言) html代码实际上就是一套能够被浏览器所识别的规则代 ...