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

使用wrapper将java程序包装成NT Service程序

    博客分类:
  • Java
阅读更多

1 下载wrapper-windows-x86-32-3.2.2.zip并解压到{Wrapper Home}
2  在应用程序目录{JavaService}下创建以下文件夹
   logs、lib、conf、bin
   并拷贝文件:
   {Wrapper Home}\lib\wrapper.dll、wrapper.jar
   到
   {JavaService}\lib\wrapper.dll、wrapper.jar
  
   {Wrapper Home}\src\conf\wrapper.conf.in
   到
   {JavaService}\conf\wrapper.conf
  
   {Wrapper Home}\bin\wrapper.exe
   {Wrapper Home}\src\bin\*bat.in
   到
   {JavaService}\bin\wrapper.exe、*.bat
  
   在{JavaService}\logs下面新建wrapper.log

3 {JavaService}下面创建文件

import java.io.*;
import java.net.*;

public class MainSvcThread {
	public static void main(String[] args) {
		try {

			Socket server;
			ServerSocket li = new ServerSocket(2022);
			System.out.println("Echo service starting...");
			while (true) {
				server = li.accept();
				new EchoThread(server).start();
			}
		} catch (Exception e) {
		}
	}
}

4 {JavaService}下面创建文件

import java.io.*;
import java.net.*;

/*实现每一个客户连接到此NT服务时的服务器端的线程单元逻辑*/

public class EchoThread extends Thread // 实现线程接口
{

	Socket so = null;// 套接字

	public EchoThread(Socket s) {
		so = s;
	}

	public void run() {
		String line;
		DataInputStream in; // 套接字上的输入流
		PrintWriter out; // 套接字上的输出流,带缓冲
		try {
			in = new DataInputStream(so.getInputStream());// 获取套接字的输入流
			out = new PrintWriter(new DataOutputStream(so.getOutputStream()));
			out.println("You have connected to EchoSvc!"); // 发送问候
			out.flush(); // 必须刷新缓冲区内的内容

			while ((line = in.readLine()) != null) {
				line = line.trim();
				if (!line.equalsIgnoreCase("quit")) {
					out.println("ECHO: " + line);
					out.flush();
				} else
					break;
			}
			in.close();
			out.close();
		} catch (IOException ioe) {
		}
	}
}

5 修改{JavaService}\conf\wrapper.conf:
#********************************************************************
# Wrapper Properties
#********************************************************************
# Java Application
wrapper.java.command=C:\Program Files\Java\jdk1.5.0_06\bin\java

# Java Main class.  This class must implement the WrapperListener interface
#  or guarantee that the WrapperManager class is initialized.  Helper
#  classes are provided to do this for you.  See the Integration section
#  of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/EchoService.jar

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=../lib

# Java Additional Parameters
#wrapper.java.additional.1==-Dprogram.name=run.bat

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)
#wrapper.java.maxmemory=64

# Application parameters.  Add parameters as needed starting from 1
wrapper.app.parameter.1=MainSvcThread

#********************************************************************
# Wrapper Logging Properties
#********************************************************************
# Format of output for the console.  (See docs for formats)
wrapper.console.format=PM

# Log Level for console output.  (See docs for log levels)
wrapper.console.loglevel=INFO

# Log file to use for wrapper output logging.
wrapper.logfile=../logs/wrapper.log

# Format of output for the log file.  (See docs for formats)
wrapper.logfile.format=LPTM

# Log Level for log file output.  (See docs for log levels)
wrapper.logfile.loglevel=INFO

# Maximum size that the log file will be allowed to grow to before
#  the log is rolled. Size is specified in bytes.  The default value
#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
#  'm' (mb) suffix.  For example: 10m = 10 megabytes.
wrapper.logfile.maxsize=0

# Maximum number of rolled log files which will be allowed before old
#  files are deleted.  The default value of 0 implies no limit.
wrapper.logfile.maxfiles=0

# Log Level for sys/event log output.  (See docs for log levels)
wrapper.syslog.loglevel=NONE

#********************************************************************
# Wrapper Windows Properties
#********************************************************************
# Title to use when running as a console
wrapper.console.title=Service For EchoThread

#********************************************************************
# Wrapper Windows NT/2000/XP Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
#  using this configuration file has been installed as a service.
#  Please uninstall the service before modifying this section.  The
#  service can then be reinstalled.

# Name of the service
wrapper.ntservice.name=MyEchoService

# Display name of the service
wrapper.ntservice.displayname=我的Echo服务程序

# Description of the service
wrapper.ntservice.description=我的第一个利用Wrapper包装的Java Nt Service程序

# Service dependencies.  Add dependencies as needed starting from 1
wrapper.ntservice.dependency.1=

# Mode in which the service is installed.  AUTO_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START

# Allow the service to interact with the desktop.
wrapper.ntservice.interactive=true


6 编译EchoThread.java及MainSvcThread.java,并将生成的class打包为EchoService.jar
  javac -d . *.java
  jar cvf lib/EchoService.jar EchoThread.class MainSvcThread.class
 
7 在Bin目录下执行App.bat可在控制台运行程序,InstallApp-NT.bat安装service,UninstallApp-NT.bat卸载service
  在任意一台联网的机器上Telnet service_ip 2022 即可测试service程序,
  service的log写在logs目录下

分享到:
评论

相关推荐

    用Java Service Wrapper将java程序制作成系统服务进程

    Java Service Wrapper是一个强大的工具,它允许开发者将Java应用程序打包成Windows或其他操作系统下的系统服务。这样,Java程序可以在系统启动时自动运行,即使没有用户登录也能持续运行,且提供了管理和控制服务的...

    使用Wrapper将Java程序注册为Windows的服务

    ### 使用Wrapper将Java程序注册为Windows的服务 #### 一、概述 在Windows系统中,将Java应用程序注册为系统服务能够实现程序的后台自动运行,并在系统启动时自动启动该程序,这对于服务器应用尤为关键。本文将详细...

    用Wrapper做java后台服务器程序

    Wrapper,全称Java Service Wrapper,是一种开源工具,能够帮助开发者轻松地将Java应用程序包装成Windows或Unix/Linux平台上的系统服务。这种方法不仅简化了Java服务的部署和管理,还提供了更稳定的运行环境和更好的...

    Java Service Wrapper配置Java台程序Windows服务

    对以上配置的服务进行测试,运行InstallMyApp-NT.bat将把你的应用(此处为App)安装到Win32系统服务中了。 打开控制面板-管理程序-服务,看到App已经在系统服务中了,其他用法就与我们熟悉的Windows服务一样了。 ...

    Java Service Wrapper部署说明

    6. **服务安装**:在Windows上,可以使用`wrapper.ntservice.name`和`wrapper.ntservice.displayname`设置服务名称和显示名称,然后通过`wrapperwindows.exe`命令来安装、启动、停止或卸载服务。 完成配置后,可以...

    Java Service Wrapper使用说明

    Java Service Wrapper是一款强大的工具,它能将任何标准的Java应用程序转换为Windows服务或Unix守护进程,极大地提升了Java应用程序在企业级环境中的可用性和稳定性。本文将详细解析Java Service Wrapper的使用步骤...

    自己做的一个wrapper(java配置windows服务)程序

    标题中的“自己做的一个wrapper(java配置windows服务)程序”指的是创建了一个Java程序,该程序作为一个包装器(Wrapper),用于在Windows操作系统上配置和管理Java应用程序作为系统服务运行。这种技术通常用于确保...

    将java程序安装成windows服务.pdf

    Java Service Wrapper是一款强大的工具,它能够将Java应用程序包装成标准的Windows服务或Unix守护进程。该工具支持多种平台,并且提供了丰富的功能,如自动重启失败的服务、日志管理、JVM参数配置等。使用Wrapper...

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

    本文将详细介绍如何利用Java Service Wrapper工具将Java程序转换为Windows服务运行的过程。 #### Java Service Wrapper简介 Java Service Wrapper是一款开源工具,用于将任何Java应用程序封装成一个Windows服务...

    将java应用程序打包成服务

    将Java应用程序打包成服务是为了使得Java程序能够在操作系统层面作为一个服务运行,提高用户的使用体验和管理便利性。这个过程通常涉及到将Java应用与特定的服务包装工具结合,例如Java Service Wrapper。以下是一个...

    将Java程序注册成系统服务.pdf

    - `wrapper.ntservice.hide-console`: 控制台是否隐藏。 - `wrapper.filter.trigger.*` 和 `wrapper.filter.action.*`: 定义控制台输出的监听和响应机制。 - `wrapper.disable_shutdown_hook`: 是否禁用JVM的关闭...

    JavaService

    JavaService 是一个开源工具,主要用于将Java应用程序包装成Windows服务(NT服务),使得Java程序可以在Windows操作系统环境下作为后台服务运行。这种服务模式对于需要长期运行且不需要用户交互的应用程序非常适用,...

    wrapper,做的NT服务的例子

    标题中的“Wrapper,做的NT服务的例子”指的是使用特定的软件工具或编程技术,将应用程序封装成Windows NT服务,以便在Windows操作系统环境下以服务的形式后台运行。这种做法常见于需要在系统启动时自动运行或者需要...

    Run JBOSS4.2 as WIindows Service (NT Service)

    完成上述步骤后,可以通过命令行工具或者使用JavaService Wrapper提供的GUI工具来安装并启动JBOSS作为Windows Service。具体的命令格式为: ``` Wrapper.exe install Wrapper.exe start ``` ### 总结 通过以上步骤...

    java应用程序发布为windows服务

    ### Java应用程序发布为Windows服务 ...- [使用wrapper将java程序安装成windows服务(摘)](#) 通过以上步骤,我们可以将Java应用程序成功地发布为Windows服务,极大地提高了程序的管理效率和稳定性。

    wrapper for windows

    首先,`wrapper` 是一个第三方库,它允许将Java应用程序包装成Windows NT服务。NT服务是Windows操作系统中的一个组件,可以独立于任何用户登录会话在后台运行,这使得Java应用能够像其他系统服务一样被管理和控制。`...

    java应用程序安装成服务

    ### Java应用程序安装成服务知识点详解 #### 一、概述 在现代软件开发中,Java作为一门广泛应用的语言,其应用程序往往需要长时间稳定运行。为了更好地管理这些应用,将Java应用程序安装为Windows服务是一种常见且...

    wrapper-windows-x86-32-3.5.6.zip

    Wrapper工具,全称为Java Service Wrapper,是一个开源的轻量级工具,专门用于将Java应用程序包装成Windows、Linux或Unix等操作系统的本地服务。它允许Java程序在操作系统启动时自动启动,并作为服务后台运行,即使...

Global site tag (gtag.js) - Google Analytics