文档章节

把maven打的jar包部署为windows启动服务

CHL93
 CHL93
发布于 2017/06/21 13:33
字数 1046
阅读 10
收藏 0
点赞 0
评论 0

首先准备好要部署的jar,这里我部署的jar是windtdb-0.0.1-SNAPSHOT.jar。 1. 第一种方法:javaservice.exe 开源的,下载地址 http://javaservice.objectweb.org 解压到一个路径下,我是解压到E盘的。没错解压出来就一个javaservice.exe.然后把jar也放在同一目录下(主要是为了方便找到);然后新建两个文本service_err.log(记录安装出错的日志)和service_out.log(这个我不知道,尴尬)。然后开始写安装的脚本文件install.bat

@echo off  
rem 修改控制台颜色  
color 1d  
rem * 使用JavaService将windTimer安装为Windows服务的脚本  
rem *  
rem * JavaService - Windows NT Service Daemon for Java applications  
rem * Copyright (C) 2006 Multiplan Consultants Ltd. LGPL Licensing applies  
rem * Information about the JavaService software is available at the ObjectWeb  
rem * web site. Refer to http://javaservice.objectweb.org for more details.   
rem 开始批处理文件中环境改动的本地化操作,在使用endlocal后环境将恢复到原先的内容  
SETLOCAL  
rem 设置环境变量,指向当前路径  
SET BASE_PATH=%CD%
rem 设置Java path: jre_home  
SET JRE_HOME=C:\Program Files\Java\jre1.8.0_131
  
rem 判断JRE_HOME是否正确  
if "%JRE_HOME%" == "" goto no_java
if not exist "%JRE_HOME%\bin\java.exe" goto no_java
  
rem 设置jvm内存分配情况  
set JVM_MEMORY=-Xms128m -Xmx256m  
rem 设置jvmdll使用哪一种模式  
SET jvmdll=%JRE_HOME%\bin\server\jvm.dll
if not exist "%jvmdll%" goto no_java  
  
rem 设置JavaService路径  
set JSBINDIR=E:\java_service
set JSEXE=%JSBINDIR%\JavaService.exe
  
rem 判断jar是否正确  
SET acctjar=%BASE_PATH%\windtdb-0.0.1-SNAPSHOT.jar
if not exist "%acctjar%" goto no_peer
  
@echo . Using following version of JavaService executable:  
@echo .  
"%JSEXE%" -version  
@echo .  
  
rem parameters and files seem ok, go ahead with the service installation  
@echo .  
  
rem 处理该批处理的输入参数,后台服务启动模式:自动  
SET svcmode=  
if "%1" == "-manual" SET svcmode=-manual  
if "%1" == "-auto" SET svcmode=-auto  
  
rem 设置JAVA_OPTS  
set JAVA_OPTS=%JAVA_OPTS% -Djava.class.path="%BASE_PATH%\windtdb-0.0.1-SNAPSHOT.jar"  
set JAVA_OPTS=%JAVA_OPTS% %JVM_MEMORY%  
  
rem 设置startstop  启动的是你的主类
SET START_STOP=-start org.springframework.boot.loader.JarLauncher  
  
  
rem 设置Log文件路径  
set OUT_ERR=-out "%BASE_PATH%\service_out.log" -err "%BASE_PATH%\service_err.log"  
  
rem 设置desp  
set DESP=-description "Wind Service"   
  
rem 设置执行命令行  
set runcmd="%JSEXE%" -install WindService
set runcmd=%runcmd% "%jvmdll%"
set runcmd=%runcmd% %JAVA_OPTS%
set runcmd=%runcmd% %START_STOP%
set runcmd=%runcmd% %OUT_ERR%
set runcmd=%runcmd% -current
set runcmd=%runcmd% "%BASE_PATH%"
set runcmd=%runcmd% %svcmode%
set runcmd=%runcmd% -overwrite
set runcmd=%runcmd% -startup 6
set runcmd=%runcmd% %DESP%
echo %runcmd%  

rem 执行安装命令  
%runcmd%  
rem 启动服务  
net start WindService
  
if ERRORLEVEL 1 goto js_error  
goto end  
:no_java
@echo . 没有Java运行环境,安装脚本不能运行  
goto error_exit  
:no_peer
@echo . 启动文件wind.jar不存在,安装脚本不能运行  
goto error_exit   
:no_jsexe
@echo . 可执行文件JavaService.exe 不存在,安装脚本不能运行  
goto error_exit  
:js_error
@echo . WindService在安装为服务的过程中发生了错误,请检查相关日志文件  
goto error_exit  
:error_exit

@echo .  
@echo . 安装失败,不能将 WindApplication安装为Windows服务  
@echo .  
@echo . 命令格式:  
@echo .  
@echo .  %~n0 [-auto / -manual] [-np]  
@echo .  
@echo . 其中:  
@echo .  -auto (默认) or -manual 参数说明了服务的启动模式:自动或者手动  
@echo .  -np 批处理命令执行完毕后不暂停  
@echo .  
@echo . 比如:  
@echo .  %~n0 -auto -np  
:end

ENDLOCAL  
@echo .  
if "%2" NEQ "-np" @pause

其中注意的是:配置启动主类那个类可以把jar加压出来找到META-INF\MANIFEST.MF,打开 ![输入图片说明]

这里是用spring boot进行开发的所以主类是Main-Class: org.springframework.boot.loader.JarLauncher,她再去启动Start-Class: com.windtdb.WindtdbApplication这个程序。然后双击运行bat,运行就好了。如果没有安装成功可以去service_err.log查看。

 如果想卸载该服务,就编辑uminstall.bat
@echo off  
  
rem 修改控制台颜色  
color 1d  
  
rem * 使用JavaService卸载WindService服务的脚本  
rem *  
rem * JavaService - Windows NT Service Daemon for Java applications  
rem * Copyright (C) 2006 Multiplan Consultants Ltd. LGPL Licensing applies  
rem * Information about the JavaService software is available at the ObjectWeb  
rem * web site. Refer to http://javaservice.objectweb.org for more details.  
  
rem 开始批处理文件中环境改动的本地化操作,在使用endlocal后环境将恢复到原先的内容  
SETLOCAL  
  
rem 设置环境变量  
SET BASE_PATH=E:\
  
rem 设置JavaService的路径  
set JSBINDIR=%BASE_PATH%\\java_service
set JSEXE=%JSBINDIR%\JavaService.exe
  
rem 卸载服务前先停止服务  
net stop WindService 
  
rem 设置执行命令行  
set runcmd="%JSEXE%" -uninstall WindService 
  
%runcmd%  
  
@echo .  
  
ENDLOCAL  
@echo .  
if "%2" NEQ "-np" @pause

双击运行就完成啦。篇幅太长,第二种方法下次写。

© 著作权归作者所有

共有 人打赏支持
CHL93
粉丝 0
博文 7
码字总数 4497
作品 0
javaservice将jar包制作成windows服务,可以安装,但是无法启动

最近有个需求,就是写个windows服务部署到内网,每天不断的对数据库查询对哪些满足条件的用户发送短信。我使用的是spring+mybatis,使用maven管理jar包。我实现了第一步:将maven项目打成jar...

在我的歌声里
2017/09/08
53
2
Maven + Eclipse + Tomcat - 开启项目调试之旅

本文的读者需要拥有一些Maven基础知识和实践,如果没有,请直接绕过或者先看一些关于Maven教程,比如Juven翻译的《Maven权威指南》,google一下便知。 开门见山,首先抛出一个问题(如果你对...

hyper0x
2012/02/27
0
0
JEESZ分布式框架--开发环境部署 ------转载

2-JEESZ分布式框架--开发环境部署 dubbozookeeperfastdfsjms mqrestful 声明:因为JEESZ分布式框架运行环境是基于linux系统的,这边也总结了网上的一些资料,考虑到后期博客作为框架的原生教...

筱飞
2016/03/17
1K
8
JEESZ分布式系统环境安装

1.环境准备 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做重复的说明...

qq59140ea121ae2
2017/05/11
0
0
JEESZ分布式系统环境安装

1.环境准备 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做重复的说明...

qq5923dd411b8fa
2017/05/23
0
0
JEESZ分布式框架--开发环境部署

环境搭建: 1.环境准备 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做...

qq592fbb5b34ad7
07/02
0
0
JEESZ分布式框架--开发环境部署

环境搭建: 1.环境准备 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做...

qq592fbb5b34ad7
07/02
0
0
J2ee分布式框架--开发环境部署

摘要: 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做重复的说明) 2....

qq59410a0b9a625
06/27
0
0
Maven百科 - 依赖管理中的scope

在Maven的依赖管理中. 目前有6种类型的scope他们分别是,compile,provided, test,runtime,system,import 在详细介绍他们之前,首要要理解一下,maven世界中的3种classpath和2种source(resour...

Garrry
2015/08/18
0
0
JEESZ分布式框架开发环境部署

摘要: 环境搭建: 1.环境准备 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里...

qq593e3b758e013
2017/09/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
今天
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部