将JavaApplication注册成windows服务
来源:互联网 发布:book.city 域名 编辑:程序博客网 时间:2024/06/06 20:19
前言:最近本人负责公司给一个不给钱的用户做了一个数学计算模型,因为用户的特殊性,所以领导交代No Monty,No Code。但是写好的程序得去用户哪里去运行啊,所以我就想了一个瞒天过海的招数,将代码打成jar包,直接编译运行,但是这个模型计算时间比较长,总是出现还没有计算完成就出现其他不知情的人员关闭CMD窗口,导致数据总是计算不完。然后我就突发奇想,将模型做成系统服务。启动之后可以后台运行。哈哈。。。。废话不多说,上码。
这里我使用Java service wrapper这个小工具,将JavaApplication做成系统服务。
贴出下载地址:http://sourceforge.net/projects/wrapper/ 或者 http://wrapper.tanukisofeware.com/doc/english/download.jsp
1.这下载wrapper工具时,官网提供了商业版本,标准版本和社区版本,其中只有社区版本是免费了,但是社区版本中是没有64位操作系统的工具的。所以只好选择32位的工具。 我下载的版本是wrapper-windows-x86-32-3.5.20.zip。这里有个注意点:就是wrapper使用32位的工具,所以JDK必须使用32位的JDK,因为32位的wrapper工具是依赖32位的JRE运行环境的。
2. 配置过程
1)首先确定你的电脑上有java运行环境,没有的话安装32位的JRE。
2)将你的java程序打包成jar包。(我的jar的名称为JavaServiceTest.jar,main方法所在类JavaServiceTest)
3)在硬盘上创建文件夹test, 并在其下创建文件夹bin, conf, lib, logs。
4)解压wrapper-windows-x86-32-3.5.20.zip, 并将其bin目录下的Wrapper.exe、src/bin目录下的App.bat.in、InstallApp-NT.bat.in、UninstallApp-NT.bat.in文件
拷贝到test的bin目录中,并分别改名为App.bat、InstallApp-NT.bat、UninstallApp-NT.bat。
5)将其lib目录下的Wrapper.DLL、wrapper.jar拷贝到test的lib目录中。并且将项目的jar和所用到的jar都拷贝到该目录(包括你自己的java程序jar和你自己程序中引入的第三方类库的jar包)。
6)将其src/conf目录下的wrapper.conf.in拷贝到workapp的conf目录中,并命名为wrapper.conf。
3. 修改wrapper.conf文件
主要修改下面几项:
(1)JVM位置:
wrapper.java.command=C:\jdk1.5.0_07\bin\java 或者 wrapper.java.command=%JAVA_HOME%/bin/java(需要在系统的环境变量里配置JAVA_HOME)
(2)MAIN CLASS 此处决定了使用Java Service Wrapper的方式
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
(3)你的Java程序所需的jar包必须全部在此标明,包括你自己Java程序的的jar包,注意路径准确:
wrapper.java.classpath.1=../lib/JavaServiceTest.jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../lib/sqljdbc4.jar
……
(4)你的Wrapper.DLL或wrapper.jar所在的目录
wrapper.java.library.path.1=../lib
(5)你的Java应用程序的运行类(主类)
wrapper.app.parameter.1=com.test.JavaServiceTest
(6)注册为服务的名称和显示名,你可以随意进行设置
wrapper.name=testwrapper
wrapper.displayname= Test Wrapper Sample Application
(7)服务描述信息
wrapper.description= Test Wrapper Sample Application Description
(8)服务的启动类型
# Mode in which the service is installed. AUTO_START, DELAY_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START
4. 修改好了以后,运行App.bat即可运行你的java程序,这里可以测试配置的是否正确,如果可以运行,证明配置ok。
5. 运行InstallApp-NT.bat可以进行服务的注册,UninstallApp-NT.bat为注销服务。
6. 运行完注册服务InstallApp-NT.bat可以在命令窗口是输入services.msc回车,即可在服务中看到你注册的服务名称。(如:Test Wrapper Sample Application)
7. 点击App.bat启动程序,但是这样是客户端启动,并达不到我预期想要的效果,这样的话不是后台运行。
8. 找到我们注册的服务之后,点击开启,程序报错,启动之后又停止了,查看wrapper生成的日志文件显示lib下的jar包找不到,Java路径找不到,然后就将相对路径换成绝对路径就好了。因为点击App.bat程序时,实在wrapper目录内,识别相对路径,当在后台启动时,按照相对路径寻找就找不到了。
所以推荐使用绝对路径,不管在什么情况下。
- 将JavaApplication注册成windows服务
- 将svn服务注册成windows服务
- 将程序注册成windows系统服务
- 将my cluster 进程注册成windows 服务
- 如何将tomcat注册成windows系统服务方法
- 将MongoDB注册成windows服务,开机启动
- 将Zope3注册为Windows服务
- 将jboos注册为windows服务
- 将svn注册为windows系统服务
- 将应用程序注册为Windows服务
- 将批处理文件注册为windows服务
- 将tomcat注册为windows服务
- 将Tomcat注册为windows服务
- 将Windows应用程序注册为服务运行
- 将Tomcat注册为Windows本地服务
- 将tomcat注册处为windows服务
- 将tomcat注册为windows服务
- 将svn服务注册为windows系统服务
- (转)java代码发送JSON格式的httpPOST请求
- 58. Length of Last Word —— Java
- 转载自 http://blog.csdn.net/bieleyang/article/details/76973220
- request中获取post的json对象数据content-type=“text/plain”
- 51 nod 1521 一维战舰 时间复杂度O(n),同 Codeforces 567D. One-Dimensional Battle Ships 有详细注释
- 将JavaApplication注册成windows服务
- 软工实践第一篇随笔-准备
- Mybatis insert时返回自增id
- C++ sizeof 误区 大公司面试题
- (转)MyBatis+MySQL 返回插入的主键ID
- Mybatis动态公用sql
- 加一
- mybatis DATE_FORMAT 格式化时间输出
- (转)CASE WHEN 用法