使用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_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:

  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_Study\Java\jdk1.7.0_79
 16
 17 rem 判断JRE_HOME是否正确
 18 if "%JRE_HOME%" == "" goto no_java
 19 if not exist "%JRE_HOME%\bin\java.exe" goto no_java
 20
 21 rem 设置jvm内存分配情况
 22 set JVM_MEMORY=-Xms128m -Xmx256m
 23 rem 设置jvmdll使用哪一种模式
 24 SET jvmdll=%JRE_HOME%\jre\bin\server\jvm.dll
 25 if not exist "%jvmdll%" goto no_java
 26
 27 rem 设置JavaService路径
 28 set JSBINDIR=D:\Java_Study\windowsservice\JavaService_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%\bin\log4j-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

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_Study\windowsservice
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  

整理后的目录结构为:

使用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》

时间: 2024-08-24 17:25:23

使用JavaService.exe(amd64)发布java服务(jdk x64)的相关文章

JAVA项目中发布WebService服务——简单实例

1,在Java项目中发布一个WebService服务: 如何发布? --JDK1.6中JAX-WS规范定义了如何发布一个WebService服务: (1)用jdk1.6.0_21以后的版本发布: (2)与Web服务相关的类,都位于Javax.jws.*包中 @WebService--此注解用在类上指定将此类发布成一个WebService: EndPoint--此类为端点服务类,其中publish()方法用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上,用于发布. 2,例子

Java Service Wrapper 发布Java程序为Windows服务

下载Windows版本:http://nchc.dl.sourceforge.net/sourceforge/wrapper/wrapper-windows-x86-32-3.2.3.zip 现在目前只要32位有免费的,64位免费版目前还没有做出来.官网上(社区)那一列是免费的. 1.先把你的项目用MANIFEST.MF打成jar包,例如bb.jar.新建目录,例如:dist,放在D盘下面.把bb.jar放到dist目录下. 2.在dist目录下新建conf,lib,log三个文件夹.conf是

杂项-Java:JDK

ylbtech-杂项-Java:JDK JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具. 1.返回顶部 1. 版本 JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). SE(JavaSE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE. EE

使用javaservice 将jboss 注册为服务

近来做项目,需要jboss定期重新启动.不想再看到jboss启动那个黑洞洞的窗口,就想着把它注册为服务,然后在net start.恰好objectweb上有个open source的javaservice,能够实现将jboss,tomcat注册为服务的功能,呵呵,得来全不费功夫,以下是配置步骤.有需要的朋友看好了..第一步: 到http://javaservice.objectweb.org/ 网站上下载javaservice,我用的是2.0.10.下载后解包到任意目录,如d:/javaserv

基于dubbo快速发布restful服务

本文使用官方项目示例,基于dubbox发布restful服务.jdk,eclipse.maven神马环境的就不讲了,自行baidu之. dubbox下载.编译 下载地址:https://github.com/dangdangdotcom/dubbox下载方式可以用git下载,也可以打包下载.下载之后,用maven导入(eclipse->import->Maven).dubbo项目结构: 使用maven打包,版本2.8.4. zookeeper安装 本文使用的是单节点的注册中心,在实际项目中需要

Centos 如何 发布Java项目

在发布Java项目之前,我们先要安装如下软件 一.Windows 1.winscp(Windows到centos上传下载) 2.PuTTY(Windows访问centos服务器) 3.Navicat客户端(连接centos数据库) 二.Centos 1.jdk 2.mysql 3.Tomcat --------------------------------------------------------------------- 一.1.winscp 安装成功之后需要输入如下内容 2.PuTT

So easy Webservice 6.使用EndPoint发布webservice服务

创建第一个Web服务: @WebService // 添加了此注解,代表是一个WebService public class HelloWorld { // 非 static final private 方法默认会发布 public String sayHi(String name) { return "hello" + name; } } 发布web服务: public static void main(String[] args) { String address="ht

现代Java服务端开发核心技术之开发工具箱

现代Java服务端开发核心技术之开发工具箱 现代Java服务端开发核心技术 2.1 开发工具概述 俗话说,工欲善其事必先利其器,掌握一些日常开中常用的工具软件能够大大提开发效率,工具本身的目的也是解放生产力.在安装各种软件时注意如果没有特殊需要不必使用最新版本,尤其是操作系统,例如当前(2018/10/12)最新版的macOS是10.14,但是运行在macOS之上的其他应用软件可能还没有及时做兼容新系统的版本,可能在系统升级之后无法正常使用,因此推荐在新系统正式推出半年后再升级最为稳妥. 而且软

Jenkins自动部署发布Java代码(完整教程)

一.需求 Jenkins大多数情况下都是用来部署Java项目,上一篇博客已经写了自动打包Java项目,但在现实应用中,Jenkins很强大的,可以做到自动打包发布Java项目.这篇文章,将引导大家完成完整的Java项目(自动发布代码功能)! 二.实验环境 三.实验步骤 1.搭建tomcat 服务(在192.168.22.129服务器上) (1)先安装jdk1.8 jdk和tomcat 下载地址: https://pan.baidu.com/s/1URk88Tp2Io0eUEMo1WpoCg 提取