zoukankan      html  css  js  c++  java
  • 使用JavaService.exe(amd64)发布java服务(jdk x64)

    最近项目中需要使用java服务,但是java服务已经写好了,就等待部署到windows服务中,遇到了种种困难------在x64服务器中部署jdk x64编译的jar时,遇到了各种纠结。

    本文找到了一种解决方案(在x64服务器、jdk x64 java环境中部署java服务的解决方案):

    首先,我们选测的工具是JavaService.exe,目前最新版本是:2.0.10 

    下载地址:http://forge.ow2.org/projects/javaservice/

    之后,解压下载的

    再最后,编译待部署的java服务程序jar包:

    再之后,整理部署java服务的目录结构:

    1,建立java服务安装目录为:D:Java_StudywindowsserviceJavaService_2_0_10-amd64

    2,拷贝编译好的TestTimer.jar包到服务安装目录的根目录下:D:Java_StudywindowsserviceJavaService_2_0_10-amd64TestTimer.jar;

         及拷贝TestTimer工程依赖的外部包log4j-1.2.17.jar到服务安装目录的根目录下:D:Java_StudywindowsserviceJavaService_2_0_10-amd64inlog4j-1.2.17.jar;

    3,把JavaService_2_0_10-amd64.zip解压出的JavaService.exe文件拷贝到D:Java_StudywindowsserviceJavaService_2_0_10-amd64JavaService.exe;

    4,  整理install.bat和uninstall.bat。

    install.bat:

      1 @echo off  
      2 rem 修改控制台颜色  
      3 color 1d  
      4 rem * 使用JavaService将TestTimer安装为Windows服务的脚本  
      5 rem *  
      6 rem * JavaService - Windows NT Service Daemon for Java applications  
      7 rem * Copyright (C) 2006 Multiplan Consultants Ltd. LGPL Licensing applies  
      8 rem * Information about the JavaService software is available at the ObjectWeb  
      9 rem * web site. Refer to http://javaservice.objectweb.org for more details.   
     10 rem 开始批处理文件中环境改动的本地化操作,在使用endlocal后环境将恢复到原先的内容  
     11 SETLOCAL  
     12 rem 设置环境变量,指向当前路径  
     13 SET BASE_PATH=%CD%
     14 rem 设置Java path: jre_home  
     15 SET JRE_HOME=D:Java_StudyJavajdk1.7.0_79
     16   
     17 rem 判断JRE_HOME是否正确  
     18 if "%JRE_HOME%" == "" goto no_java
     19 if not exist "%JRE_HOME%injava.exe" goto no_java
     20   
     21 rem 设置jvm内存分配情况  
     22 set JVM_MEMORY=-Xms128m -Xmx256m  
     23 rem 设置jvmdll使用哪一种模式  
     24 SET jvmdll=%JRE_HOME%jreinserverjvm.dll
     25 if not exist "%jvmdll%" goto no_java  
     26   
     27 rem 设置JavaService路径  
     28 set JSBINDIR=D:Java_StudywindowsserviceJavaService_2_0_10-amd64
     29 set JSEXE=%JSBINDIR%JavaService.exe
     30   
     31 rem 判断jar是否正确  
     32 SET acctjar=%BASE_PATH%TestTimer.jar
     33 if not exist "%acctjar%" goto no_peer
     34   
     35 @echo . Using following version of JavaService executable:  
     36 @echo .  
     37 "%JSEXE%" -version  
     38 @echo .  
     39   
     40 rem parameters and files seem ok, go ahead with the service installation  
     41 @echo .  
     42   
     43 rem 处理该批处理的输入参数,后台服务启动模式:自动  
     44 SET svcmode=  
     45 if "%1" == "-manual" SET svcmode=-manual  
     46 if "%1" == "-auto" SET svcmode=-auto  
     47   
     48 rem 设置JAVA_OPTS  
     49 set JAVA_OPTS=%JAVA_OPTS% -Djava.class.path="%BASE_PATH%inlog4j-1.2.17.jar;%BASE_PATH%TestTimer.jar"  
     50 set JAVA_OPTS=%JAVA_OPTS% %JVM_MEMORY%  
     51   
     52 rem 设置startstop  
     53 SET START_STOP=-start cn.test.timer.TestTimer  
     54   
     55   
     56 rem 设置Log文件路径  
     57 set OUT_ERR=-out "%BASE_PATH%service_out.log" -err "%BASE_PATH%service_err.log"  
     58   
     59 rem 设置desp  
     60 set DESP=-description "TestTimer Service"   
     61   
     62 rem 设置执行命令行  
     63 set runcmd="%JSEXE%" -install TestTimerService
     64 set runcmd=%runcmd% "%jvmdll%"
     65 set runcmd=%runcmd% %JAVA_OPTS%
     66 set runcmd=%runcmd% %START_STOP%
     67 set runcmd=%runcmd% %OUT_ERR%
     68 set runcmd=%runcmd% -current
     69 set runcmd=%runcmd% "%BASE_PATH%"
     70 set runcmd=%runcmd% %svcmode%
     71 set runcmd=%runcmd% -overwrite
     72 set runcmd=%runcmd% -startup 6
     73 set runcmd=%runcmd% %DESP%
     74 echo %runcmd%  
     75 
     76 rem 执行安装命令  
     77 %runcmd%  
     78 rem 启动服务  
     79 net start TestTimerService
     80   
     81 if ERRORLEVEL 1 goto js_error  
     82 goto end  
     83 :no_java
     84 @echo . 没有Java运行环境,安装脚本不能运行  
     85 goto error_exit  
     86 :no_peer
     87 @echo . 启动文件TestTimer.jar不存在,安装脚本不能运行  
     88 goto error_exit   
     89 :no_jsexe
     90 @echo . 可执行文件JavaService.exe 不存在,安装脚本不能运行  
     91 goto error_exit  
     92 :js_error
     93 @echo . TestTimerService在安装为服务的过程中发生了错误,请检查相关日志文件  
     94 goto error_exit  
     95 :error_exit
     96 
     97 @echo .  
     98 @echo . 安装失败,不能将 TestTimer安装为Windows服务  
     99 @echo .  
    100 @echo . 命令格式:  
    101 @echo .  
    102 @echo .  %~n0 [-auto / -manual] [-np]  
    103 @echo .  
    104 @echo . 其中:  
    105 @echo .  -auto (默认) or -manual 参数说明了服务的启动模式:自动或者手动  
    106 @echo .  -np 批处理命令执行完毕后不暂停  
    107 @echo .  
    108 @echo . 比如:  
    109 @echo .  %~n0 -auto -np  
    110 :end
    111 
    112 ENDLOCAL  
    113 @echo .  
    114 if "%2" NEQ "-np" @pause
    View Code

    uninstall.bat

     1 @echo off  
     2   
     3 rem 修改控制台颜色  
     4 color 1d  
     5   
     6 rem * 使用JavaService卸载TestTimerService服务的脚本  
     7 rem *  
     8 rem * JavaService - Windows NT Service Daemon for Java applications  
     9 rem * Copyright (C) 2006 Multiplan Consultants Ltd. LGPL Licensing applies  
    10 rem * Information about the JavaService software is available at the ObjectWeb  
    11 rem * web site. Refer to http://javaservice.objectweb.org for more details.  
    12   
    13 rem 开始批处理文件中环境改动的本地化操作,在使用endlocal后环境将恢复到原先的内容  
    14 SETLOCAL  
    15   
    16 rem 设置环境变量  
    17 SET BASE_PATH=D:Java_Studywindowsservice
    18   
    19 rem 设置JavaService的路径  
    20 set JSBINDIR=%BASE_PATH%JavaService_2_0_10-amd64
    21 set JSEXE=%JSBINDIR%JavaService.exe
    22   
    23 rem 卸载服务前先停止服务  
    24 net stop TestTimerService  
    25   
    26 rem 设置执行命令行  
    27 set runcmd="%JSEXE%" -uninstall TestTimerService  
    28   
    29 %runcmd%  
    30   
    31 @echo .  
    32   
    33 ENDLOCAL  
    34 @echo .  
    35 if "%2" NEQ "-np" @pause  
    View Code

    整理后的目录结构为:

    使用JavaService.exe部署Java服务并启动服务:

    运行install.bat

    运行过程中,如果正行,cmd屏幕信息如下:

    安装目录结构变化:

    停止并卸载服务:

    运行uninstall.bat.

    运行过程中,如果正行,cmd屏幕信息如下:

    参考文章:《【JavaService】部署Java jar为Windows后台服务 http://blog.csdn.net/alibert/article/details/49944721》

    JavaService将jar发布为windows 服务  http://blog.csdn.net/alibert/article/details/49944823》

  • 相关阅读:
    TLS1.3 认证和秘钥建立握手环节的分析
    使用华为云+GitHub搭建自己的博客
    TLS1.3 握手协议的分析
    Formal Analysis of the TLS Handshake Protocol -----论文整理
    TLS1.3 握手过程特性的整理
    TLS1.3 PPT 整理
    SSL/TLS 握手协议简述
    TLS握手秘钥套件分析
    Scyther-Compromise 协议形式化安全分析如何改进协议
    HTTP 协议部分常识简介
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/5423412.html
Copyright © 2011-2022 走看看