Dev@Free

zJun's Tech Weblog

将Java应用注册为后台服务

项目中有一个java应用程序,交付后用户要求要把这个程序做成后台服务程序,即:系统启动后该程序可以自动启动,并且在前台不要出现运行窗口,维护人员只要在“服务管理”(Windows)中选择启动或停止即可.
解决办法如下:

Linux
在Linux中注册后台服务程序相对容易,只需编辑/etc/init.d/boot.local文件,在boot.local文件里加上下面这句脚本:

/iapappserver/MessageServer2.1/run.sh

其中run.sh是java应用的运行脚本

Windows
在Windows下的情况较为复杂,需要使用Windows提供的两个工具:instsrv.exe(下载)和Srvany.exe(下载).
instsrv: 这个工具是把win32程序变成系统服务。
基本用法:

instsrv [服务名] [应用程序绝对路径] (增加服务)
instsrv 
[服务名] REMOVE  (删除服务)

但是并不是所有程序都适合做系统服务的,注册成系统服务后就是无法启动的,这时就需要用到srvany.

srvany: 这个工具就是用来解决上面的工具中的问题,你注册的时候把它当作你要的服务,在用它来启动你的应用程序。
基本用法:

instsrv [服务名] [srvany的绝对路径]

具体步骤如下:
1.       注册服务: path\instsrv 服务名 path\srvany.exe
2.       regedit打开注册表
3.       进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名
4.       右键-新建-项 填入 Parameters
5.       打开Parameters,右键-新建-字符串值 Application
6.       双击Application 填入 应用程序的绝对路径,如: D:\workspace\app\main.exe
7.       右键-新建-字符串值AppDirectory
8.       双击AppDirectory 填入 应用程序的工作目录,如: D:\workspace\app\
9.       启动服务。

Parameters里还可以添加很多键值:
  AppDirectory 工作目录
  AppParameters 你的应用程序的参数。
  AppEnvironment 运行环境变量。

posted on 2006-02-28 22:57 zJun's帛罗阁 阅读(8941) 评论(10)  编辑  收藏

评论

# re: 将Java应用注册为后台服务 2006-03-01 20:06 Java,研究之路

http://www.codeproject.com/system/xyntservice.asp
这个工具不错,可以试一下  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-03 10:45 Kasoulong

请教一下,可以将*.bat的文件运行作为服务吗?我看了其它文章的相关介绍,说不行;我用srvany.exe和instsrv.exe试了,好像都不行!谢谢!  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-06 11:26 zJun

To: Kasoulong
可以。上面提到的java应用就是注册的*.文件。
要注意的是:
1) 注册时时要写明srvany.exe的绝对路径,否则启动时将提示找不到文件;
2) 编辑注册表时,记得设置应用程序的工作目录 AppDirectory  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-06 11:54 zJun

To: Java,研究之路
谢谢,有时间研究一下。
当初开始做的时候也考虑过使用开源的工具包(当时考虑的是使用Java Service Wrapper)。
不过后来因为时间太紧只好作罢。  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-09 10:14 Matt

用上面的方式,启动没有问题,可以怎么实现停止这个功能啊!  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-09 21:17 Kasoulong

是啊,怎样停止运行的程序?在"服务"里面点击停止,srvany.exe进程是停止了,但运行程序的java.exe进程却无法停止?

而且若系统有其他的java.exe进程(比如tomcat的进程),该如何停止自动运行程序的java.exe进程?谢谢!  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-13 18:59 zJun

@Matt
如果运行的是bat程序,则是存在不能停止的问题,目前的解决办法是生成exe文件再注册(生成的方法可参考:将Java程序作成exe文件的几种方法),是可以正常停止的.
如果觉得这种方法不够"java",可以研究上面提到的Java Service Wrapper工具包,可以找到纯java的实现方式,只是目前还没有深入地去研究.  回复  更多评论   

# re: 将Java应用注册为后台服务 2006-03-13 19:04 zJun

@Kasoulong
不太明白你的第二个问题,不过有时间的话可以研究一下上面提到的Java Service Wrapper,据说Tomcat5也是使用这个工具来生成后台服务的,希望对你有帮助.  回复  更多评论   

# 哇,《夜宴》 有重大发现 2006-09-21 14:16 tfling

哇,《夜宴》 有重大发现
嘿!看《夜宴》看出了商机,哥们,心动的来看看!
前天刚刚看过冯小刚《夜宴》,感觉还不错,葛优演技确实不错,不愧是国际影帝啊,不过看见他,就想起他的《不见不散》、《天下无贼》了,感觉就想笑,因为他一直演喜剧,我觉得他不该演这样的正剧,不知道大家怎么看?
我上网搜索了一下相关的新闻,居然有重大发现,一哥们抢注的“电影夜宴”的中文域名居然在网上卖15万元的高价,真没想到这个东西还那么赚钱。再看一下知道了,他们是“玉米农”,不在田里种玉米,专门抢“玉米(域名)”,他们天天都瞅着有什么最新鲜,最火,就赶快注册。最近刘翔又拿冠军了,这不“刘翔.com”、“中国刘翔.com”和以刘翔的世界纪录12.88秒命名的“1288.org.cn”都被人抢走了。
看得我心动阿,原来这个真的是一个不错的投资机会,哦,不对,应该是投机才对,嘿嘿。。可以一夜发达啊,像“赢在米坛”在京举办首次域名拍卖会,现场成交了7个域名,成交额达133.9万元。
心动不如行动!光是想还是不够的,于是我请教了搞IT的朋友,问他们怎么做,哪家好。他说他刚在时代互联(www1.now.cn)自己选了一台DIY主机,现在什么都流行DIY,没想到虚拟主机也来DIY。听他说这种主机脚本、大小、数据库什么都可以自己选的。刚好符合自己的需要,他很满意。管他呢,进去看看再说,结果呢,和《夜宴》有关的都没了,还有很多都被人抢走了,想到的很多都没了。555555~~~~好在,空间价格实惠,又能自主升级,嘿嘿!
郁闷!没办法,现在的米农太厉害了。空间商的花样也越来越多,不过最后还是让我发现了两个,点球.net,和diandian.net.cn。空间也越来越实惠,还有优惠券送呢!!嘻嘻~~~时代互联还是“全国十佳品牌”,主机完全自定制,域名免费试用的。有哪位朋友想要买我的域名,用我的空间,给我留言哦!嘿嘿………


  回复  更多评论   

# re: 将Java应用注册为后台服务 2007-09-17 15:38 同声传译

从事各专业翻译服务,包括笔译、口译、同声传译和同声传译设备租赁等。同时我们长期需要招聘兼职翻译、同传译员和外籍英文校对人员。
希望有机会合作.
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

统计

常用链接

留言簿(15)

随笔分类

随笔档案

相册

收藏夹

博客

文档

站点

论坛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜