博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows 64位环境的Java 服务配置
阅读量:4975 次
发布时间:2019-06-12

本文共 1942 字,大约阅读时间需要 6 分钟。

有个任务,需要远程起调Windows64服务器下的程序,那么需要在Windows服务器中注入一个deamon服务,都知道Linux环境做成后台服务非常简单,nohup &很快能解决问题,但windows环境总是多重磨难。 

一开始我先问了个朋友,他回答是没做成服务,是把写个Pathon包在java外面,然后编译成exe,在启动中加入,我一听觉得有些麻烦,还需要绕一圈才能起调。 
先搜Java windows service, 推荐首选Wrapper,并且大名鼎鼎的ActiveMQ也是用的他做的服务,经过验证,配置很简单,copy wrapper.exe, wrapper.dll, wrapper.jar到自己的目录,并配置一个wrapper.conf, 测试 

Java代码  
  1. wrapper.exe -c wrapper.conf   

发现有问题,需要一个licence key,需要购买。 
也许还有方法去破解,不过看了一个老外说wrapper对windows64位并不免费,并推荐Procrun之后,决定转到这一阵地,加上大名鼎鼎的Tomcat也是用它做的服务。整个配置如下: 
1.下载prunsrv 
 
下载commons-daemon-1.0.8-bin-windows.zip 
网上找这个不容易,后来才在commons-daemon-1.0.8-bin-windows.zip里面找到这个,一般会找到,这里面并没有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 

Java代码  
  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方式的服务配置 

Java代码  
  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脚本 

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

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

转载于:https://www.cnblogs.com/logsharing/p/8176186.html

你可能感兴趣的文章
openstack dpdk
查看>>
springmvc跳转方式
查看>>
Linux安装Redis
查看>>
IOS 第三方管理库管理 CocoaPods
查看>>
背景色渐变(兼容各浏览器)
查看>>
Redis中7种集合类型应用场景
查看>>
MariaDB 和 MySQL 比较
查看>>
MYSQL: 1292 - Truncated incorrect DOUBLE value: '184B3C0A-C411-47F7-BE45-CE7C0818F420'
查看>>
Java JPA @Transient 在Hibernate中应用
查看>>
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
查看>>
springMVC Controller 参数映射
查看>>
JDK1.8源码分析02之阅读源码顺序
查看>>
java使用jsp servlet来防止csrf 攻击的实现方法
查看>>
缓存穿透/击穿/雪崩/降级
查看>>
我的作品
查看>>
【bzoj题解】2186 莎拉公主的困惑
查看>>
Protocol Buffer学习笔记
查看>>
Update 语句
查看>>
HBuilder打包Android apk 支付不了问题解决
查看>>
poj2594——最小路径覆盖
查看>>