【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
分享到:
相关推荐
在本文中,我们将深入探讨如何使用Java Service Wrapper将SpringBoot应用部署为Windows服务。 首先,理解SpringBoot的核心特性是必要的。SpringBoot通过默认配置、内嵌Servlet容器(如Tomcat或Jetty)以及自动配置...
而在Windows上,通常使用如“java-service.exe”这样的工具将JAR文件注册为服务,使得JAR包可以在系统启动时自动执行,不受用户登录状态影响。 “java-service.exe”可能是一个工具,用于将Java应用转化为Windows...
### 使用WinSW将Spring Boot Jar部署为Windows服务 #### 一、部署背景及意义 在当前的软件开发环境中,Spring Cloud作为微服务架构的核心组成部分,以其强大的生态系统支持着各种复杂应用的开发。Spring Boot作为...
1. **prunsrv.exe**: 这是Apache Commons Daemon的一部分,它是一个通用的后台服务管理器,可以将Java应用程序(如Spring Boot的fat JAR)作为Windows服务来运行。Fat JAR是包含所有依赖项的单一可执行文件,便于...
总之,JavaService 是Java开发者在Windows平台上部署Java应用程序为服务的利器,它简化了服务的创建和管理流程,使得Java应用能够无缝融入Windows系统的服务管理体系中。通过合理配置和使用,JavaService可以帮助...
这个压缩包中通常会包含一个名为"javaservice.exe"的可执行文件,它是实现将Java应用转化为服务的关键。此外,可能还会包含相关的文档或示例文件,帮助用户了解如何使用这个工具。 使用JavaService的基本步骤如下:...
Java程序在Windows操作系统上作为服务运行,是一种常见的部署方式,特别是在需要后台持续运行且与系统启动同步的应用场景中。要实现这一目标,我们可以利用开源工具Winsw,它是一个小型的Windows服务封装器,允许...
将springboot打包成的jar文件做成windows服务,解决java程序自启动问题,适合现场部署后无人看管情况,断电后服务器启动后不用管理springboot服务,不用打开cmd,也不担心现场人员误操作关闭cmd窗口。
总的来说,JavaService-2.0.10.zip是Java开发者和系统管理员的重要工具,它简化了在Windows环境中管理和部署Java应用程序,特别是对于那些期望在后台稳定运行的应用,如JBoss应用服务器。通过正确配置和使用Java...
将springboot部署的jar包作为windows服务,实现开机自动启动 1、将打包好的jar包重命名,将版本号去掉 如 xxxxxx-1.0.0.jar 重命名为 xxxxxx.jar 2、将下载好的WinSW.NET4.exe文件放置xxxxxx.jar同一路径...
在现代企业级应用环境中,经常需要将Java应用程序部署为后台服务,以便实现自动启动、持续运行等需求。本文将详细介绍如何利用Java Service Wrapper工具将Java程序转换为Windows服务运行的过程。 #### Java Service...
本文将深入探讨如何将一个SpringBoot应用打包为jar文件,并在Windows操作系统中实现自动部署,将其作为服务运行。 首先,我们需要了解SpringBoot的jar部署方式。SpringBoot的应用程序通常被打包为一个可执行的jar...
在这里,你需要指定Java主类(`wrapper.java.mainclass`),应用的JAR文件路径(`wrapper.java.classpath`),以及其他相关参数如内存分配(`wrapper.java.additional.*`)。 3. **创建启动脚本**: 在JSW的bin目录...
2. Java Service Wrapper (JavaService),这是一个用于将Java应用程序包装成Windows服务的工具。这里提供的版本是JavaService-2.0.10.zip。 步骤一:解压JavaService-2.0.10.zip 将这个压缩包解压到一个合适的位置...
在Java开发中,将应用程序发布为Windows服务是常见的需求,特别是在需要后台长期运行且自动启动的应用场景下。本文将深入探讨如何使用Java实现这一功能。 首先,我们需要理解什么是Windows服务。Windows服务是一种...
- 使用命令行进入prunsrv.exe所在的目录,然后使用`prunsrv install [ServiceName]`命令来配置新的服务,其中[ServiceName]是你希望为服务设定的名称。 - 在这个过程中,你需要指定Java的安装路径,jar包的位置,...
Java Service Wrapper是一个强大的工具,它允许开发者将Java应用程序在Windows操作系统上包装成系统服务,这样应用程序就可以在系统启动时自动启动,并且可以在后台无用户界面的情况下运行。这个工具对于那些需要...
本篇文章将深入探讨如何使用`sh`脚本来启动Java的JAR程序,并将其设置为守护进程,以便在后台持续运行,即使用户注销或终端关闭也不会受到影响。 首先,我们需要创建一个shell脚本,例如`test.sh`,来执行我们的...