Java Service Wrapper

Java Service WrapperJava Service Wrapper(以下简称JSW)是一个可以将Java应用程序封装成Windows服务(service)或Unix守护程序(daemon)的程序,而且是免费的。它可运行于:

  • aix - AIX
  • freebsd - FreeBSD
  • hpux, hpux64 - HP-UX, 32 and 64-bit versions.
  • irix - SGI Irix
  • linux - Linux kernels; 2.2.x 2.4.x, 2.6.x. Known to work with Debian and Red Hat, but should work with any distribution.
  • macosx - Macintosh OS X.
  • osf1 - DEC OSF1.
  • solaris - Sun OS, Solaris 7, 8.
  • win32 - Windows NT, 2000, XP, and 2003.

JSW的使用有三种方式:

  1. 用WrapperSimpleApp class启动应用程序。这是使用JSW最简单的方式,也是推荐的方式。但使用这种方式有个问题,因为JSW是直接使用System.exit()退出JVM的,这等如使用者在应用程序运行期间直接按ctrl-c退出程序一样。如果应用程序在退出前需要执行clean up的话,需要自行登记shutdown hook,或不要使用这种方式。以这种方式配置JBoss的例子(Win32, Linux / UNIX)。

  2. 第二种方式是使用WrapperStartStopApp class。这种方式是给Tomcat之类的应用程序(即在一个类启动,但以另一个类结束的应用程序)。通常这类的应用程序都会在启动时打开一个server socket,用来等待要求程序结束的连接,当接收到要求结束的请求,“结束”类会被执行。而JSW就是在收到停止运行的要求时,直接执行这个“结束”类。以这这种方式配置Tomcat的例子(Win32, Linux / UNIX)。

  3. 第三种方式,也是最复杂,最灵活的一种方式,也是唯一一种需要编程的方式。这种方式要写一个实现WrapperListener接口的类。有些功能是这种方式独有的,例如直接在程序中接收及回应系统控制事件(如启动及结束)。但这也增加了程序的复杂程度。如果不需要这些功能的话,还是使用第一种方式比较方便。以这种方式配置的例子

注:使用第一种方式最好不要使用JRE1.3.x或以上,因为1.2.x无shutdown hook的技持。如程序只能使用JRE1.2.x,就需要使用第二或第三种方式使用JSW。

posted on 2005-06-15 19:03 毒菇求Buy 阅读(2518) 评论(1)  编辑 收藏 引用 所属分类: JAVAWindowsLinux

评论

# re: Java Service Wrapper 2005-06-15 19:04 毒菇求Buy

在Windows,可以使用JSmooth之类的native compiler compile成win32应用程序,再用nt-service之类的wrapper包装成windows service。

在linux,也可以用GCJ compie成native应用程序,再写个daemon script,使之成为daemon。

使用JSW的好处是方便,write once, run anywhere。而compile成native app再wrap成service或daemon这种方式就比较难维护,但运行速度快,不容易被crack。

Two face of a coin,自己拣吧:)  回复  更多评论   

只有注册用户登录后才能发表评论。
<2005年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(7)

随笔分类(133)

随笔档案(111)

文章分类(65)

文章档案(53)

相册

收藏夹(30)

BLOG

Book store

Graphics Design

搜索

最新评论

阅读排行榜

评论排行榜