怎么把jar文件做成系统服务,比较多的解决方案是使用 wrapper-windows 这个软件包。这个软件包的强大之处是能把jre环境也给打进去,这个服务可以正常运行在根本没有jre环境即就没有安装JDK的机器上。

1.到Java Service Wrapper 官网https://wrapper.tanukisoftware.com/doc/english/download.jsp,下载一个符合自己操作系统的版本。

这里用的是32位3.5.30最新版本的。(注:32版本是免费的,64是需要付费的)

2.下载后解压,里面包含 bin, conf ,doc, jdoc lib, logs, src 7个文件夹。

3.自己独立新建一个文件夹,如:Test   ,在此文件夹下创建lib,bin,logs,conf是个文件夹。

4.将解压后的的wrapper文件夹下对应的文件移入到Test中

wrapper-windows\src\bin 下的
                    App.bat.in
                  InstallApp-NT.bat.in
                   PauseApp-NT.bat.in
                   ResumeApp-NT.bat.in
                   StartApp-NT.bat.in
                   StopApp-NT.bat.in
                   UninstallApp-NT.bat.in

复制到bin目录下,并将后缀为.in的文件全部重命名,去掉.in。例如: App.bat.in重命名为App.bat

wrapper-windows\bin\wrapper.exe -> Test\bin\wrapper.exe

wrapper-windows\conf\wrapper.conf.in -> Test\conf\wrapper.conf

wrapper-windows\conf\wrapper-license-time.conf-> Test\conf\wrapper-license.conf

wrapper-windows\lib\wrapper.jar -> Test\lib\wrapper.jar

wrapper-windows\lib\wrapper.dll -> Test\lib\wrapper.dll

wrapper-windows\logs  下的文件复制到myWindowServ\logs目录下。

5.将要发布的Java程序的classes放在Test的lib文件夹下边,

将程序依赖的jar包放在Test/lib下。

6.修改wrapper.conf文件的内容,

(1)wrapper.java.command=java 用的是jdk的编译命令,所在机器,必须安装有jdk.

(2)wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp 表示,启动主函数,这里用wrapper的代理。

(3)

wrapper.java.classpath.1=../lib/wrapper.jar

wrapper.java.classpath.2=../lib/classes

wrapper.java.classpath.3=../lib/aspectjrt-1.6.12.jar  将依赖的jar也以这种形式添加到classpath下。

............................................

(4)wrapper.java.initmemory=128 配置程序运行的所需要的内存大小,这里是限制服务所占用的最小和最大内存,根据程序运行的效果也可以不改。

wrapper.java.maxmemory=256

(5)wrapper.app.parameter.1=com.bizvane.ConnectorApp

指定程序的主类

如 com.weiguo.mypro.TimerRun 是 myJar打包工程中main方法所在的类

就需要如下配置:

wrapper.app.parameter.1=com.weiguo.mypro.TimerRun

(6)控制台运行时的名称 (显示在任务管理器和服务里面的)

wrapper.console.title=TestServer

指定服务的名称(显示在任务管理器和服务里面的)

wrapper.ntservice.name=TestServer

windows服务的显示名称 (显示在任务管理器和服务里面的)

wrapper.ntservice.displayname=TestServer

服务描述 (显示在服务里面的描述)

wrapper.ntservice.description=TestServer描述

(7)启动模式,默认是自启动AUTO_START or DEMAND_START

wrapper.ntservice.starttype=AUTO_START

7.运行InstallApp-NT.bat安装服务,运行StartApp-NT.bat启动服务。先安装再启动。停止了再卸载。
8.可以暂停PauseApp-NT.bat,重启服务ResumeApp-NT.bat,停止服务StopApp-NT.bat。
9.卸载服务UninstallApp-NT.bat。

用JavaServiceWrapper将JAVA程序发布成Windows服务的更多相关文章

  1. 使用wrapper将java程序注册程windows服务后不生效

    使用wrapper将java程序注册程windows服务后不生效 使用add.bat或test***.bat测试通过了, 然后使用install***.bat注册后cmd显示注册成功. 但是程序到了运 ...

  2. 使用srvany.exe把程序安装成windows服务的方法

    http://mazhihui.iteye.com/blog/1294431 srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的 ...

  3. 使用srvany.exe将程序安装成windows服务的详细教程

    srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...

  4. 使用srvany.exe把程序安装成windows服务

    srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...

  5. 使用NSSM把任意exe程序注册成Windows服务

    1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...

  6. 如何将控制台程序包装成windows服务

    1. 新建一个项目,或者从选择当前解决方案--右键-添加--新建项目 2. 选择(项目类型)Visual C#项目,(模板)Windows 服务,填写要创建的服务名称(修改默认的WindowServi ...

  7. 将bat文件或exe程序注册成windows服务

    命令行使用sc命令.关于sc命令的详解,请自行查看帮助(sc /?),在此只简单提及如何加入系统服务功能.加入服务:sc create ServiceName binPath= 路径 start= a ...

  8. 使用EXE4J和Inno Setup 编译器将java程序打包成windows桌面应用安装程序

    java项目结构如下: Demo是模仿程序快照,主要设计两个按钮:保存快照和恢复快照: 保存快照将对象(窗口)序列化保存下来,后面无论做了什么操作,只要点击恢复快照, 就会读取之前保存的序列化的对象. ...

  9. java程序发布成exe等

    1.使用工具jartoexe http://www.regexlab.com/zh/jar2exe/free.htm http://www.jar2exe.com/ 2.exe4j.JSmooth等 ...

随机推荐

  1. hbase 查看hfile文件

    emp表数据结构 hbase(main):098:0> scan 'emp' ROW COLUMN+CELL row1 column=mycf:depart, timestamp=1555846 ...

  2. array_chunk的用法和php操作大数据

    一.array_chunk() 函数 二.php操作大数据 1.在操作大数量数据与数据库交互时,比如插入大量数据,db就会报错,这时可以把原本的数据用array_chunk分隔成几个数组块,再循环插入 ...

  3. Yii2实现命名范围scope的自定义查询

    Yii中存在scope命名范围这个概念,Yii2里已经废弃了,在实际的项目开发情景中,我们有时需要用到命名范围这种自定义查询 使用场景: cate为栏目分类表,现在需要查询出栏目分类列表中所有的顶级分 ...

  4. css 文本单行显示溢出时出现省略号 多行显示溢出时出现省略号 首行缩进

    一.文本单行显示溢出时出现省略号 二.文本多行显示溢出时出现省略号(这种样式只能在webkit和移动端使用,包括小程序,不能设置固定高度) 三.首行缩进两字符 text-indent: 2em; 四. ...

  5. Android 一共有多少种动画?准确告诉你!

    Android 动画 Android 动画在开发中是不可或缺的功能,或者说是界面灵动的添加剂.那你是否总结过 Android 中总共为开发者提供了多少种方式的动画呢?今天就为大家总结归纳一下.   报 ...

  6. 关于strcpy的安全函数的选择

    1)如果整个程序,在进行字符拷贝时,这个拷贝字符串的完整性,不影响整个程 序的运行,可以让其截取一部分字符串,程序继续执行.那么我们就可以选择安全 函数:strncpy_s 2)如果在进行字符串拷贝时 ...

  7. java 统计字符串中连续重复的字符,并得出新字符串

    题目: 比如输入为aaabbc,输出a3b2c1 完整解答: public class Other { static String func(String str) { StringBuffer re ...

  8. 从零开始学MySQL(二)

    鉴于上节篇幅以安装为主,因此对于调用mysql所需要使用的“命令”只是略微提及.随之而来就会带给读者诸多不解了,因为你会思考,这串长长的字符到底有什么特殊的含义呢?聪明的你可能早就抱着好奇心去“摆渡” ...

  9. lilo - 安装引导装入程序

    总述 主要功能: ” /sbin/lilo” - 安装引导装入程序 辅助用途: ”/sbin/lilo –q” - 查询影射表 ”/sbin/lilo –R” - 设置下次启动的默认命令行 ”/sbi ...

  10. 认识 android-job

    简评: Android 实现后台任务的最佳实践. 对于现在的应用来说,在应用生命周期之外运行一些后台任务可以说已经是一项必不可少的需求了.这些任务可能是在某个时间点提醒用户什么事情或同步本地数据到服务 ...