`
woniu1983
  • 浏览: 168142 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【JavaService】部署Java jar为Windows后台服务

    博客分类:
  • Java
阅读更多
【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




0
0
分享到:
评论

相关推荐

    SpringBoot 使用Java Service Wrapper 部署Windows服务

    在本文中,我们将深入探讨如何使用Java Service Wrapper将SpringBoot应用部署为Windows服务。 首先,理解SpringBoot的核心特性是必要的。SpringBoot通过默认配置、内嵌Servlet容器(如Tomcat或Jetty)以及自动配置...

    可运行jar注册windows服务.zip

    而在Windows上,通常使用如“java-service.exe”这样的工具将JAR文件注册为服务,使得JAR包可以在系统启动时自动执行,不受用户登录状态影响。 “java-service.exe”可能是一个工具,用于将Java应用转化为Windows...

    使用winsw将springboot jar部署为windows服务1

    ### 使用WinSW将Spring Boot Jar部署为Windows服务 #### 一、部署背景及意义 在当前的软件开发环境中,Spring Cloud作为微服务架构的核心组成部分,以其强大的生态系统支持着各种复杂应用的开发。Spring Boot作为...

    spring微服务fat jar部署为windows service工具包

    1. **prunsrv.exe**: 这是Apache Commons Daemon的一部分,它是一个通用的后台服务管理器,可以将Java应用程序(如Spring Boot的fat JAR)作为Windows服务来运行。Fat JAR是包含所有依赖项的单一可执行文件,便于...

    JavaService

    总之,JavaService 是Java开发者在Windows平台上部署Java应用程序为服务的利器,它简化了服务的创建和管理流程,使得Java应用能够无缝融入Windows系统的服务管理体系中。通过合理配置和使用,JavaService可以帮助...

    javaservice一款可将Java应用程序安装为Window服务的小工具

    这个压缩包中通常会包含一个名为"javaservice.exe"的可执行文件,它是实现将Java应用转化为服务的关键。此外,可能还会包含相关的文档或示例文件,帮助用户了解如何使用这个工具。 使用JavaService的基本步骤如下:...

    java程序做成Windows服务运行

    Java程序在Windows操作系统上作为服务运行,是一种常见的部署方式,特别是在需要后台持续运行且与系统启动同步的应用场景中。要实现这一目标,我们可以利用开源工具Winsw,它是一个小型的Windows服务封装器,允许...

    将springboot打包成的jar文件做成windows服务,解决java程序自启动问题

    将springboot打包成的jar文件做成windows服务,解决java程序自启动问题,适合现场部署后无人看管情况,断电后服务器启动后不用管理springboot服务,不用打开cmd,也不担心现场人员误操作关闭cmd窗口。

    JavaService-2.0.10.zip,包含中文使用说明

    总的来说,JavaService-2.0.10.zip是Java开发者和系统管理员的重要工具,它简化了在Windows环境中管理和部署Java应用程序,特别是对于那些期望在后台稳定运行的应用,如JBoss应用服务器。通过正确配置和使用Java...

    winsw将Jar包作为windows服务(WinSW.zip)

    将springboot部署的jar包作为windows服务,实现开机自动启动 1、将打包好的jar包重命名,将版本号去掉 如 xxxxxx-1.0.0.jar 重命名为 xxxxxx.jar 2、将下载好的WinSW.NET4.exe文件放置xxxxxx.jar同一路径...

    Java程序快速转换为windows服务运行

    在现代企业级应用环境中,经常需要将Java应用程序部署为后台服务,以便实现自动启动、持续运行等需求。本文将详细介绍如何利用Java Service Wrapper工具将Java程序转换为Windows服务运行的过程。 #### Java Service...

    SpirngBoot jar 包windows自动部署

    本文将深入探讨如何将一个SpringBoot应用打包为jar文件,并在Windows操作系统中实现自动部署,将其作为服务运行。 首先,我们需要了解SpringBoot的jar部署方式。SpringBoot的应用程序通常被打包为一个可执行的jar...

    java项目在window注册服务自启动

    在这里,你需要指定Java主类(`wrapper.java.mainclass`),应用的JAR文件路径(`wrapper.java.classpath`),以及其他相关参数如内存分配(`wrapper.java.additional.*`)。 3. **创建启动脚本**: 在JSW的bin目录...

    jboss如何在windows系统服务中启动

    2. Java Service Wrapper (JavaService),这是一个用于将Java应用程序包装成Windows服务的工具。这里提供的版本是JavaService-2.0.10.zip。 步骤一:解压JavaService-2.0.10.zip 将这个压缩包解压到一个合适的位置...

    java 发布windows服务

    在Java开发中,将应用程序发布为Windows服务是常见的需求,特别是在需要后台长期运行且自动启动的应用场景下。本文将深入探讨如何使用Java实现这一功能。 首先,我们需要理解什么是Windows服务。Windows服务是一种...

    用Daemon实现windows系统下将jar包作为系统服务

    - 使用命令行进入prunsrv.exe所在的目录,然后使用`prunsrv install [ServiceName]`命令来配置新的服务,其中[ServiceName]是你希望为服务设定的名称。 - 在这个过程中,你需要指定Java的安装路径,jar包的位置,...

    Java Service Wrapper 将你的java应用程序安装成windows系统服务

    Java Service Wrapper是一个强大的工具,它允许开发者将Java应用程序在Windows操作系统上包装成系统服务,这样应用程序就可以在系统启动时自动启动,并且可以在后台无用户界面的情况下运行。这个工具对于那些需要...

    linux上通过sh方式启动java jar程序并做为守护进程

    本篇文章将深入探讨如何使用`sh`脚本来启动Java的JAR程序,并将其设置为守护进程,以便在后台持续运行,即使用户注销或终端关闭也不会受到影响。 首先,我们需要创建一个shell脚本,例如`test.sh`,来执行我们的...

Global site tag (gtag.js) - Google Analytics