java exe jdk_使用JavaService.exe(amd64)发布java服务(jdk x64)

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

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

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

7e2b6ac128ca4663417a1743d26d5f98.png

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

之后,解压下载的

d4a5385b9933d4f2280e018a8f80fa12.png

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

855355922d7b85501aa8ceabde3e252f.png

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

1,建立java服务安装目录为:D:\Java_Study\windowsservice\JavaService_2_0_10-amd64

2,拷贝编译好的TestTimer.jar包到服务安装目录的根目录下:D:\Java_Study\windowsservice\JavaService_2_0_10-amd64\TestTimer.jar;

及拷贝TestTimer工程依赖的外部包log4j-1.2.17.jar到服务安装目录的根目录下:D:\Java_Study\windowsservice\JavaService_2_0_10-amd64\bin\log4j-1.2.17.jar;

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

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

install.bat:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 @echo off2 rem 修改控制台颜色3 color 1d4 rem *使用JavaService将TestTimer安装为Windows服务的脚本5 rem *

6 rem * JavaService - Windows NT Service Daemon forJava applications7 rem * Copyright (C) 2006Multiplan Consultants Ltd. LGPL Licensing applies8 rem *Information about the JavaService software is available at the ObjectWeb9 rem * web site. Refer to http://javaservice.objectweb.org formore details.10 rem 开始批处理文件中环境改动的本地化操作,在使用endlocal后环境将恢复到原先的内容11 SETLOCAL12 rem 设置环境变量,指向当前路径13 SET BASE_PATH=%CD%

14 rem 设置Java path: jre_home15 SET JRE_HOME=D:\Java_Study\Java\jdk1.7.0_7916

17 rem 判断JRE_HOME是否正确18 if "%JRE_HOME%" == ""goto no_java19 if not exist "%JRE_HOME%\bin\java.exe"goto no_java20

21 rem 设置jvm内存分配情况22 set JVM_MEMORY=-Xms128m -Xmx256m23 rem 设置jvmdll使用哪一种模式24 SET jvmdll=%JRE_HOME%\jre\bin\server\jvm.dll25 if not exist "%jvmdll%"goto no_java26

27 rem 设置JavaService路径28 set JSBINDIR=D:\Java_Study\windowsservice\JavaService_2_0_10-amd6429 set JSEXE=%JSBINDIR%\JavaService.exe30

31 rem 判断jar是否正确32 SET acctjar=%BASE_PATH%\TestTimer.jar33 if not exist "%acctjar%"goto no_peer34

35 @echo . Using following version of JavaService executable:36 @echo .37 "%JSEXE%" -version38 @echo .39

40 rem parameters and files seem ok, go ahead with the service installation41 @echo .42

43 rem 处理该批处理的输入参数,后台服务启动模式:自动44 SET svcmode=

45 if "%1" == "-manual" SET svcmode=-manual46 if "%1" == "-auto" SET svcmode=-auto47

48 rem 设置JAVA_OPTS49 set JAVA_OPTS=%JAVA_OPTS% -Djava.class.path="%BASE_PATH%\bin\log4j-1.2.17.jar;%BASE_PATH%\TestTimer.jar"

50 set JAVA_OPTS=%JAVA_OPTS% %JVM_MEMORY%

51

52 rem 设置startstop53 SET START_STOP=-start cn.test.timer.TestTimer54

55

56 rem 设置Log文件路径57 set OUT_ERR=-out "%BASE_PATH%\service_out.log" -err "%BASE_PATH%\service_err.log"

58

59 rem 设置desp60 set DESP=-description "TestTimer Service"

61

62 rem 设置执行命令行63 set runcmd="%JSEXE%" -install TestTimerService64 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% -current69 set runcmd=%runcmd% "%BASE_PATH%"

70 set runcmd=%runcmd% %svcmode%

71 set runcmd=%runcmd% -overwrite72 set runcmd=%runcmd% -startup 6

73 set runcmd=%runcmd% %DESP%

74 echo %runcmd%

75

76 rem 执行安装命令77 %runcmd%

78 rem 启动服务79 net start TestTimerService80

81 if ERRORLEVEL 1goto js_error82 goto end

83 :no_java84 @echo . 没有Java运行环境,安装脚本不能运行85 goto error_exit86 :no_peer87 @echo . 启动文件TestTimer.jar不存在,安装脚本不能运行88 goto error_exit89 :no_jsexe90 @echo . 可执行文件JavaService.exe 不存在,安装脚本不能运行91 goto error_exit92 :js_error93 @echo . TestTimerService在安装为服务的过程中发生了错误,请检查相关日志文件94 goto error_exit95 :error_exit96

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 -np110 :end

111

112 ENDLOCAL113 @echo .114 if "%2" NEQ "-np" @pause

View Code

uninstall.bat

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 @echo off2

3 rem 修改控制台颜色4 color 1d5

6 rem *使用JavaService卸载TestTimerService服务的脚本7 rem *

8 rem * JavaService - Windows NT Service Daemon forJava applications9 rem * Copyright (C) 2006Multiplan Consultants Ltd. LGPL Licensing applies10 rem *Information about the JavaService software is available at the ObjectWeb11 rem * web site. Refer to http://javaservice.objectweb.org formore details.12

13 rem 开始批处理文件中环境改动的本地化操作,在使用endlocal后环境将恢复到原先的内容14 SETLOCAL15

16 rem 设置环境变量17 SET BASE_PATH=D:\Java_Study\windowsservice18

19 rem 设置JavaService的路径20 set JSBINDIR=%BASE_PATH%\JavaService_2_0_10-amd6421 set JSEXE=%JSBINDIR%\JavaService.exe22

23 rem 卸载服务前先停止服务24 net stop TestTimerService25

26 rem 设置执行命令行27 set runcmd="%JSEXE%" -uninstall TestTimerService28

29 %runcmd%

30

31 @echo .32

33 ENDLOCAL34 @echo .35 if "%2" NEQ "-np" @pause

View Code

整理后的目录结构为:

f2e9dc234ee3602a8f203ec52b4ea676.png

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

运行install.bat

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

a37de5106285b01df907d160cc568c2c.png

安装目录结构变化:

70b70cd68fd4b88be967137df0ce049b.png

停止并卸载服务:

运行uninstall.bat.

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

5ff14456097218d295176e0b7e2a9b06.png

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


版权声明:本文为weixin_28741707原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。