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

 

本文将介绍如何使用 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 Service
    rem www.originsoft.net ,jingwei@originsoft.net
    rem ----------------------------------------------------
     
    rem set JAVA_HOME=D:\java\jdk\jdk16
     
    set JETTY_PORT=8080
    set JETTY_STOP_PORT=8087
    rem -Xmx1024m -Xms256m
    set Xmx=1024
    set Xms=256
     
    set SERVICE_NAME=Jetty7
    set CURRENT_DIR=%cd%
    cd..
    set JETTY_HOME=%cd%
    set PRUNSRV_EXE=%JETTY_HOME%\bin\prunsrv.exe
     
    if "%1" == "" goto showUsage
    if %1 == install goto doInstall
    if %1 == uninstall goto doUninstall
    echo Unknown parameter "%1"
    :showUsage
    echo Usage: service.bat install/uninstall
    goto end
     
    :doInstall
     
    set PR_DISPLAYNAME=Jetty7
    set PR_DESCRIPTION=Jetty7 Server - http://www.eclipse.org/jetty/
    set PR_INSTALL=%PRUNSRV_EXE%
    set PR_LOGPATH=%JETTY_HOME%\logs
    set PR_STDOUTPUT=auto
    set PR_STDERROR=auto
    set PR_STARTMODE=jvm
    set PR_STOPMODE=jvm
    set PR_CLASSPATH=%JETTY_HOME%\start.jar
    set PR_STARTCLASS=org.eclipse.jetty.start.Main
    set PR_STOPCLASS=org.eclipse.jetty.start.Main
     
    rem Set the server jvm from JAVA_HOME
    set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll
    if exist "%PR_JVM%" goto foundJvm
    rem Set the client jvm from JAVA_HOME
    set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll
    if exist "%PR_JVM%" goto foundJvm
    set PR_JVM=auto
     
    :foundJvm
    echo 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 installed
    echo Failed installing '%SERVICE_NAME%' service
    goto end
     
    :installed
    echo 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
     
    :end
    cd %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的服务端口和关闭端口。

附件:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值