【JavaService】部署Java jar为Windows后台服务
将Java jar文件部署为Windows后台服务有多种方法:Service Installer、Java service Wrapper、JavaService.exe等等。这里介绍下使用JavaService.exe来部署windows后台服务的方法。
1. 下载JavaService.exe, 最新的是2.0.10版本,请下载其zip包版本的即可
forge.ow2.org/projects/javaservice/
2. 安装JavaService.exe
将下载的zip包解压缩到任意目录即可
3. 编译一个测试jar(请从附件中下载): 每天11:00:00向time.log文件中写入当前时间
- public static void main(String[] args) {
- // schedule task执?
- scheduler.schedule(new SchedulerTask() {
- public void run() {
- // TODO
- FileOutputStream writerStream = null;
- OutputStreamWriter outSW = null;
- try {
- writerStream = new FileOutputStream("F:/TestTimer/time.log");
- outSW = new OutputStreamWriter(writerStream, "UTF-8");
- //将缓冲对文件的?出
- final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
- outSW.write(sdf.format(new Date()));
- } catch (final IOException e) {
- e.printStackTrace();
- } finally {
- try {
- // 向缓冲区写成功后?执?缓冲区刷新?使文件内容生效
- if (outSW != null) {
- outSW.close();
- }
- //关?文件流
- if (writerStream != null) {
- writerStream.close();
- }
- } catch (final IOException e) {
- e.printStackTrace();
- }
- }
- }
- }, new DailyIterator(11, 0, 0));
- }
4. 在jar文件所在的目录下,建立如下批处理文件,执行后即可完成服务的注册和auto start
- @echo off
- rem 修改控制台颜色
- color 1d
- rem * 使用JavaService将TestTimer安装为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=D:\Program Files\Java\jre1.5.0_11
- 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\client\jvm.dll
- if not exist "%jvmdll%" SET jvmdll=%JRE_HOME%\bin\hotspot\jvm.dll
- if not exist "%jvmdll%" goto no_java
- rem 设置JavaService路径
- set JSBINDIR=E:\AccountingTool\javaservice\JavaService-2.0.10
- set JSEXE=%JSBINDIR%\JavaServiceDebug.exe
- rem 判断jar是否正确
- SET acctjar=%BASE_PATH%\TestTimer.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%\TestTimer.jar"
- set JAVA_OPTS=%JAVA_OPTS% %JVM_MEMORY%
- rem 设置startstop
- SET START_STOP=-start cn.test.timer.TestTimer
- rem 设置Log文件路径
- set OUT_ERR=-out "%BASE_PATH%\service_out.log" -err "%BASE_PATH%\service_err.log"
- rem 设置desp
- set DESP=-description "TestTimer Service"
- rem 设置执行命令行
- set runcmd="%JSEXE%" -install TestTimerService
- 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 TestTimerService
- if ERRORLEVEL 1 goto js_error
- goto end
- :no_java
- @echo . 没有Java运行环境,安装脚本不能运行
- goto error_exit
- :no_peer
- @echo . 启动文件TestTimer.jar不存在,安装脚本不能运行
- goto error_exit
- :no_jsexe
- @echo . 可执行文件JavaService.exe 不存在,安装脚本不能运行
- goto error_exit
- :js_error
- @echo . TestTimerService在安装为服务的过程中发生了错误,请检查相关日志文件
- goto error_exit
- :error_exit
- @echo .
- @echo . 安装失败,不能将 TestTimer安装为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
注意: 其中JRE_HOME 和 JSBINDIR(javaservice路径) 视安装路径而异。
5. 停止并卸载服务的批处理文件,其中service 名称必须与上面注册的service名称一致
- @echo off
- rem 修改控制台颜色
- color 1d
- rem * 使用JavaService卸载TestTimerService服务的脚本
- 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:\AccountingTool\Release\AccountingTool\
- rem 设置JavaService的路径
- set JSBINDIR=%BASE_PATH%\JavaService-2.0.10
- set JSEXE=%JSBINDIR%\JavaService.exe
- rem 卸载服务前先停止服务
- net stop TestTimerService
- rem 设置执行命令行
- set runcmd="%JSEXE%" -uninstall TestTimerService
- %runcmd%
- @echo .
- ENDLOCAL
- @echo .
- if "%2" NEQ "-np" @pause
转载于:https://www.cnblogs.com/hyl8218/p/5084887.html
【JavaService】部署Java jar为Windows后台服务相关推荐
- 用WinSW让java程序运行为Windows后台服务
准备工具: 1.下载一个WinSW.NET2工具,官方下载链接:https://github.com/winsw/winsw/releases 2.将你的java程序打成可执行的jar包 新建一个文件 ...
- C#实现Windows后台服务实例浅析
2019独角兽企业重金招聘Python工程师标准>>> C#实现Windows后台服务实例之前要明白的一些概念:所谓Windows后台服务,即后台自动运行的程序,一般随操作系统启动而 ...
- 手动部署java jar包
手动部署java jar包 出现的问题 使用说明 使用步骤 注意事项 脚本内容 出现的问题 项目开发或者部署过程中,开发人员总是因为启动命令的错误,导致启动参数不对,或者环境不对的情况,根据此种情况, ...
- java7找不到uri_部署-Java Jar文件:使用资源错误:URI不是hierarchi
部署-Java Jar文件:使用资源错误:URI不是hierarchi 我已将我的应用程序部署到jar文件. 当我需要将数据从一个资源文件复制到jar文件外部时,请执行以下代码: URL resour ...
- 使用nssm将命令行启动的应用程序(.exe,.bat等)注册成windows后台服务
使用nssm可以将应用程序exe或者bat注册成windows后台服务 1.下载nssm,下载连接:NSSM - the Non-Sucking Service Manager 2.下载nssm之后, ...
- 使用instsrv.exe和srvany.exe将应用程序安装成windows后台服务
instsrv.exe.exe和srvany.exe是Microsoft Windows Resource Kits工具集中 的两个实用工具,这两个工具配合使用可以将任何的exe应用程序作为windo ...
- liunx+java+jar+运行_Linux后台运行java的jar包
Linux 运行jar包命令如下: 方式一 java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...
- win10 python免安装_使用Python编写免安装运行时、以Windows后台服务形式运行的WEB服务器...
环境构建 安装python2.7 安装Setup Tools 在https://pypi.python.org/pypi/setuptools获取安装脚本的链接http://peak.telecomm ...
- 儿童上网时间管控软件_GreenSurfOnline V0.1 使用说明 (以Windows后台服务形式存在,安装需要有一定电脑操作基础)...
1.GreenSurfOnline配置文件,配置可以上网的时间断,上网的时间使用NTP时间,如果当前时间不在GreenSurfOnlineCfg.ini配置文件中, 不执行默认的关机命令(批处理文件, ...
最新文章
- 如何在内嵌 css 中编写: hover_优秀 CSS 代码的 8 个编写技巧!
- 美国拟将14项关键技术列入出口管制清单 商务部回应
- linux查看根目录使用率,Linux 查看空间使用情况的实例详解
- java方法区超详细汇总,方法区到底是干什么用的?不懂方法区不能说了解jvm!
- EduCoder Linux之文件打包和解压缩
- 一般区域二重、三重积分MATLAB计算方法
- 大数据入门(一)-大数据概念和特点(1)
- Mysql数据库-Centos和Raspbian主从复制(备份)
- MediaElementAudioSourceNode
- 破产的圣文森特医院,如何利用大数据寻求解救方案?
- python小白从哪来开始-python入门小白的困惑,怎么入门python?
- 基于matlab的图像仿真研究,基于MATLAB的图像锐化算法研究与仿真
- JS 数组 Array 对象详解 与 for...of 增强型迭代
- vue生命周期心得体会800字
- 宠物领养平台的分析与实现
- 【信息安全服务】使用Hashcat工具对shadow文件进行弱口令检查
- 简单的机械臂设计(Splay树)
- 一、Composer下载安装
- 关于克苏鲁神话的细节
- html怎样加粗直线,HTML字型要怎么加粗?
热门文章
- springboot学习笔记(二)
- C++单链表的建立和遍历
- Java—正整数分解成质因数
- bluemix java_Bluemix 基础:将 SQL 数据库添加到您的 Java 应用程序中
- 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(二)
- 关于Android中工作者线程的思考
- oppo手机显示服务器繁忙,如何玩转OPPO R11,五大隐藏功能你必须了解
- JZOJ 1533. 郁闷的gxg
- js 数组修改watch_前端面试:专注Vue.js常见的问题答疑,掌握了基本上Vue就过关了...
- linux下线程不需要死循环么,Linux多线程程序死循环问题调试