技术开发 频道

将Java应用程序转换为Windows服务


IT168技术文档】 
    至少15-21个可配置参数可从集成JNI和Windows服务API中产生,下面是一些定制程序时可能适合的参数: 
    Windows服务参数: 
    服务名称 
    显示名称 
    描述 
    执行路径 
    启动类型(自动/手动) 
    工作目录 
    每个进程的一个服务或者单个进程的多个服务 
    与桌面选项相互作用(如果服务有UI组件) 
    登录名和密码(运行服务使用一个用户的帐户或者本地系统帐户) 

    Java应用程序指定参数: 
    JVM.dll的路径 
    JVM选项(-D,-X) 
    类名 
    任何命令行参数 
    关闭时间 

    Log参数: 
    时间log和文件log 
    重定向任何表准的输出/错误到某个文件 
    安装期间,可以根据需求,在推荐位置HKLM\System\CurrentControlSet\[Service Name]\Parameters存储参数。 

    关闭Java App 
    虽然调用Systen.exit(0)方法可以关闭JVM,但是不能清除Windows服务和SCM建立的管道通讯,因此使用Systen.exit调用,但当停止服务时,却得到下列错误: 

    System error 109 has occurred. 
    The pipe has been ended. 

    可以实现一个单独的关闭方法并调用,可以调用public static void shutdown()方法,用20秒的时间以一个单独的线程关闭,如果关闭方法没有返回值,这可以阻止服务产生没有响应的状态,当然可以根据需求设置时间,但是要确保少于系统时间,否则SCM将终止服务进程。

0
相关文章