Windows 64位环境的Java服务配置

开发 后端
一般在32位的操作系统中,Java服务的配置对于很多人来说都不是问题,那么,到了64位系统环境后就束手无策了。下面我们来看看作者怎么去解决这个问题。

最近有个任务,需要远程起调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%\,不然会报告文件找不到

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

原文链接:http://zhousheng29.iteye.com/blog/1320882

【编辑推荐】

  1. Java进行HTML数据采集:浅谈强大的group正则
  2. 多态在 Java 和 C++ 编程语言中的实现比较
  3. 详细解析Java中抽象类和接口的区别
  4. Java***图形解决方案 JFreeChart学习总结
  5. JPPF 2.5.5发布 Java并行处理框架
责任编辑:林师授 来源: zhousheng29的博客
相关推荐

2010-05-15 12:18:58

网络安全反垃圾邮件

2009-12-15 18:00:54

.NET 4.0

2009-07-24 18:03:44

2010-05-31 09:01:07

IPv6配置

2010-08-04 10:04:52

Flex1.5环境配置

2011-08-04 18:09:15

PHP

2009-12-18 11:14:52

VS 2010环境

2012-09-19 20:40:53

2021-02-14 10:03:41

网络攻击零日漏洞SolarWinds

2017-06-26 18:30:01

PythonLinuxCentos

2021-02-21 22:23:56

Windows 10VMware Hori虚拟化

2009-12-15 10:41:06

Visual Stud

2010-10-28 16:24:30

配置oracle数据库

2009-12-16 09:45:13

UbuntuUbuntu ServUTF-8

2011-05-20 13:19:47

win7oracle数据库

2010-06-03 11:32:19

Windows Ser

2011-12-13 10:11:49

2009-12-03 14:37:02

Visual Stud

2011-06-17 17:32:25

Qt Visual C++

2020-10-12 18:21:22

LinuxPython命令
点赞
收藏

51CTO技术栈公众号