(售后服务)如何使用J编写NT服务.pdfVIP

  • 5
  • 0
  • 约8.53千字
  • 约 8页
  • 2021-02-05 发布于陕西
  • 举报
(售后服务)如何使用J 编 写NT 服务 壹、NT 服务介绍 所谓 NT 服务,实际上是壹类特殊的应用程序所谓 NT 服务,实际上就是壹个能够于系统启动 时自动于壹定身份下启动的伴随系统长时间存于的进程。象 FTPserver 、HTTPserver 、脱机 打印等均是采用 NT 服务的形式提供的。这实际上类似 Unix 的 rootdaemon 进程。NT 服务归 纳起来,NT 服务又以下几个特征: 1 、能够自启动,不需要交互启动。这对于服务器来说是壹个重要的特征。当然,你能够决 定服务是否自启动,甚至能够屏蔽某个服务。 2 、NT 服务没有用户界面,基本上类似壹个 DOS 程序,因为 NT 服务必须长时间运行,所以不 想普通 win32 进程壹样有自己的界面。可是 NT 服务能够同用户有界面交互,这是壹类特殊 的服务进程。能够通过NT 的任务管理器来见到服务进程。 3 、NT 服务通过 SCM (ServicesControlManager )接口来管理,安装、启动、停止、撤除等 均需要 SCM 的接口功能来进行。控制面板的服务控制器就是利用SCM 接口来管理系统中的所 有服务的。实际上,仍有壹些能够控制服务的程序或者命令,有 net.exe 、服务器管理器等、 SCM.exe 等。 4 、这些进程均以壹定的身份运行,以方便进行服务器资源的存取。壹般情况下使用域中的 LocalSystem 账号运行,此账号对本机上的大多数资源(除非特别禁止)有完全的存取权限, 这样能够保证服务程序的“强大”。可是,也有些服务采用特别的账号运行,你也能够特别 设定壹个服务的帐号。 5 、由系统自动以线程方式运行,壹般情况下不过多占用系统资源,这同普通的进程有所区 别,如果不采用线程方式,壹般进程往往消耗整个 CPU 资源。壹般需要时时存于,又不能过 多消耗资源的任务以服务来实现最合适。 二、Java 编写服务的准备 1 、作为本地化的实现,实现NT 服务的 Java 程序当然不是 100%纯 Java ,单靠标准类库是无 法实现我们的编写 NT 服务的目的,所以 MS 提供了壹套 SDKforJava(本文采用的是 MicrosoftSDKforJava4.0) ,提到了如何利用MS 提供的扩展类库和相应的工具,实现符合 Windows 平台需要的程序。其中包括了实现 NT 服务的所需要的类库 API 框架以及将 Java 编 译的 class 文件组装成标准的NT 服务程序的工具。SDK 的下载路径能够从/java/查找到。 2 、安装完SDK 后能够见到于安装目录下有 jntsvc 目录,此目录就包含了service.zip 文件, 它实际上是壹个NTservices 的类库框架,封装了壹些NT 服务实现细节,使得我们能够按照 框架舒服实现我们关心的细节。将 service.zip 展开至开发机器的系统安装 Service 库到 Java 扩展库\Winnt\java\TrustLib 下,如果于其他操作系统下进行开发,参照此系统目录 进行安装文件。 3 、于该目录下仍有壹个jntsvc.exe 文件,也就是 JavaNTService 的意思啦。她能够帮助您 实现将按照SDK 提供的框架实现的编译后的 class 文件组装成壹个标准的NT 服务可执行文 件。JntSvc 帮助我们于已经编译好的.class 文件基础上设置了所有NT 服务程序必须的特征, 是很重要的工具,得到 NT 服务取决于如何有效利用她。为了我们能够方便从任何其他目录 的控制台窗口调用她,我们将JntSvc.exe 所于的目录全路径加入 path 环境变量。这能够通 过设置系统属性的高级属性页当中进行环境变量的设定。 4 、按照要求,我们写好各项代码,然后编译编写Java 程序,得到 class 文件。我们当然不 会于 VjStudio 中启动她,因为它目前仍没有可执行文件的入口,系统无法启动她。为了得 到 NT 服务程序,我们需要于 class 文件所于目录的控制台窗口执行壹个命令:X : jntsvc*.class/OUT:ECHOSvc.exe/SVCMAIN:EchoSvc/SERVICENAME:ECHOSvc 。 具 体 的 Jntsvc 的参数我们能够见壹见jntsvc-?得到,这里的意思大概是:将当前目录下的所有 class 文件组装成壹个 NT 服务进程 exe 文件,文件名为 EchoSvc.exe,服务的启动入口于 echosvc.class 中,于注册表中相应的服务名称为/Servicename 参数指定

文档评论(0)

1亿VIP精品文档

相关文档