浏览 22264 次
锁定老帖子 主题:用JAVA编写系统服务(Service)
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-06-21
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-06-21
toney_kissinger 写道 不知有没有人将一个JAVA程序作成一个系统服务,当系统启动时自动加载,用户可以控制服务的停止、启动及restar。C语言在实现方面已经有很多成效,而现今还没有一个运作良好的JAVA系统服务呈现在大家面前。大家可以发表一个自己的意见谈一谈。如:TOMCAT中的系统级服务实现有缺点,停止服务时不能即时从内存中清除遗留的进程,快速重启服务时容易出现端口的多次绑定,造成服务加载失败。
你怎么知道没有?在Unix平台上,要控制Java程序作为系统服务,可以说是轻而易举的事情,写个shell脚本就行。即使是在Windows平台,你也可以使用Jakarta的commons-daemon来把Java程序作为系统服务程序来管理。 说到Windows平台,你以为一定要在管理工具的服务里面出现的才能叫做系统服务吗?在服务里面出现的东西,无非就是在发送 net *** start net *** stop net *** restart 这样的命令而已。 我用tomcat的 startup.bat shutdown.bat 有什么本质区别吗? 操作系统启动加载就更加简单,你在注册表里面添加,或者在启动菜单里面添加都可以。 我从来不觉得一定要放在管理工具的服务里面有什么实质意义,相反,我是很反感放到那里去的,如果不放在那里,我自己控制更简单方便,放到那里,反而把事情搞复杂了,将来删除,也往往删除不干净。 如果你一定要实现这样的功能的话,需要用VC来写注册表来实现,如果你熟悉VC,你就应该知道怎么编写。 另外Windows平台的BEA WebLogic 自带了一个这样的把java程序注册为系统服务的工具 http://e-docs.bea.com/wls/docs81/adminguide/winservice.html |
|
返回顶楼 | |
发表时间:2004-07-09
实际上从用户可操作的角度来说的确有放到服务里的必要,不仅仅是因为好管理,还因为能自动启动(可能你没有在实际应用中遇见过将服务器反覆停止,启动的问题,但在现实中是很多的,也许程序错误,也许掉电,也许用户不小心等等),如果能将抛出的错误转为系统事件更方便管理。
|
|
返回顶楼 | |
发表时间:2004-07-11
Robbin说的不错,windows net service又不是什么高级东西,下面的这个项目也可以支持windows net service。如果是产品,可以放一个管理器图标在状态栏右下角(日期区),比服务强一点。
Java Service Wrapper |
|
返回顶楼 | |
发表时间:2004-07-11
呵呵;这东西也有些用处;看着好看;
|
|
返回顶楼 | |
发表时间:2004-07-17
凭我对WINDOWS的认识这两者是不一样的,后台程序不光是有一般应用程序的接口,还有一些特殊的接口以供管理,还有一点,后台程序和前台程序的优先程度是可以调整的,如果你用WIN2K SRV系列的产品就可以在高级选项里面设置为前台优化或者后台优化,这是优先分配系统资源的先后次序
|
|
返回顶楼 | |
发表时间:2004-07-20
谢谢大家,我试着应用一下
|
|
返回顶楼 | |
发表时间:2004-07-21
觉得重新删除oracle的时候就是一种困扰,往往不能一次清除干净。需要借助超级兔子之类的工具。
关键是有必要使用服务:windows做一个任务,linux/solaris设置crontab可以实现自动运行。 服务的意义就在于可以自动运行,停止,操作上方便一些而以。 |
|
返回顶楼 | |
发表时间:2004-08-21
告诉你一个好的应用java到windows服务的开源工具,
http://wrapper.tanukisoftware.org |
|
返回顶楼 | |