使用Apache Commons Daemon 来实现Jetty7 以Windows 服务方式运行

来源:互联网 发布:淘宝达人刷粉丝软件 编辑:程序博客网 时间:2024/05/01 13:04
 

本文将介绍如何使用 Apache Commons Daemon 来实现Jetty7 以Windows 服务方式运行,如果你使用的是 Jetty6 请直接查看 Jetty 的Win32Wrapper。

开始前你需要准备:

  1. JDK1.5 以上,在这里选择适合你的版本。
  2. Jetty7,如果你还没有请在这里下载。
  3. 已编译好的 Apache Commons Daemon Windows 版,可以在这里下载(支持32位与64位系统)。

准备完成后我们开始:

  1. 将 jetty7 解压到目录 D:\jetty7,目录可以根据你的需要进行修改。
  2. 解压 Apache Commons Daemon (当前版本是 commons-daemon-1.0.7-bin-windows.zip)到临时目录,如果是32位系统将其根目录下的 prunmgr.exe 与 prunsrv.exe 两个可执行文件拷贝到 D:\jetty7\bin 里面。Prunsrv 是一个服务应用可以让任何应用程序作为一个服务运行,不仅仅局限于 Java,Prunmgr 是一个图形界面程序,用来监控和配置 Prunsrv  的服务,更多详细信息请看这里。
  3. 创建脚本,进入文件夹 D:\jetty7\bin,使用记事本或其他文本编辑器创建文件 service.bat (在文章最后提供下载),其内容如下:
    @echo off rem ----------------------------------------------------rem Install/Uninstall Jetty7 NT Servicerem www.originsoft.net ,jingwei@originsoft.netrem ---------------------------------------------------- rem set JAVA_HOME=D:\java\jdk\jdk16 set JETTY_PORT=8080set JETTY_STOP_PORT=8087rem -Xmx1024m -Xms256mset Xmx=1024set Xms=256 set SERVICE_NAME=Jetty7set CURRENT_DIR=%cd%cd..set JETTY_HOME=%cd%set PRUNSRV_EXE=%JETTY_HOME%\bin\prunsrv.exe if "%1" == "" goto showUsageif %1 == install goto doInstallif %1 == uninstall goto doUninstallecho Unknown parameter "%1":showUsageecho Usage: service.bat install/uninstallgoto end :doInstall set PR_DISPLAYNAME=Jetty7set PR_DESCRIPTION=Jetty7 Server - http://www.eclipse.org/jetty/set PR_INSTALL=%PRUNSRV_EXE%set PR_LOGPATH=%JETTY_HOME%\logsset PR_STDOUTPUT=autoset PR_STDERROR=autoset PR_STARTMODE=jvmset PR_STOPMODE=jvmset PR_CLASSPATH=%JETTY_HOME%\start.jarset PR_STARTCLASS=org.eclipse.jetty.start.Mainset PR_STOPCLASS=org.eclipse.jetty.start.Main rem Set the server jvm from JAVA_HOMEset PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dllif exist "%PR_JVM%" goto foundJvmrem Set the client jvm from JAVA_HOMEset PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dllif exist "%PR_JVM%" goto foundJvmset PR_JVM=auto :foundJvmecho Using JVM:%PR_JVM% "%PRUNSRV_EXE%" //IS//%SERVICE_NAME% --StopParams=--stop --JvmOptions="-Djetty.port=%JETTY_PORT%;-Djetty.home=%JETTY_HOME%;-Djetty.logs=%PR_LOGPATH%;-DSTOP.PORT=%JETTY_STOP_PORT%;-DSTOP.KEY=jingwei" --JvmMs=%Xms% --JvmMx=%Xmx% if not errorlevel 1 goto installedecho Failed installing '%SERVICE_NAME%' servicegoto end :installedecho The service '%SERVICE_NAME%' has been installed.goto end :doUninstall"%PRUNSRV_EXE%" //DS//%SERVICE_NAME%echo The service '%SERVICE_NAME%' has been uninstalled.goto end :endcd %CURRENT_DIR% 
  4. 注册服务,使用命令行( cmd.exe ),进入文件夹 D:\jetty7\bin ,执行命令:
    1
    service.bat install

    如果提示:“The service ‘Jetty7′ has been installed.”则说明服务注册成功。

  5. 启动服务,打开 Windows 服务管理器(services.msc),找到 Jetty7 并启动,正常启动后打开浏览器输入地址:http://localhost:8080,当出现 Jetty 的欢迎界面则说明服务安装成功。
  6. 卸载服务,同样使用命令行进入文件夹 D:\jetty7\bin ,执行命令:
    1
    service.bat uninstall

    如果提示:“The service ‘Jetty7′ has been uninstalled.”则说明服务正常卸载。

注意:

  1. 如果你使用 Windows7 系统,必须使用管理身份运行命令行,否则不能正常安装。
  2. 如果在同一系统中安装一个以上的服务,请将prunsrv.exe修改为不重复的名字(否则多个程序使用同一进程)并且需要修改Jetty的服务端口和关闭端口。

附件:

  • commons-daemon-1.0.7-bin-windows.zip
  • service.zip

 

原创粉丝点击