设为首页 收藏本站
查看: 889|回复: 0

[经验分享] 将java程序做成windows系统服务

[复制链接]

尚未签到

发表于 2016-5-21 06:22:57 | 显示全部楼层 |阅读模式
近日一直在忙于Rhel(32位与64位都有)下制作虚拟镜像, 说老实话这份差事对于之前从未接触过Linux的我来讲还确实有点困难。

   经过自己一个星期得奋战总算掌握了一些基本的操作了,虚拟镜像除mysql+php+phpMyAdmin+apache之外都安装好了。插句题外话: RHel安装LAMP还真是挺头疼的,依赖嵌套很深难以处理,至于使用Cent Os的Yum方式安装,依赖问题倒是大大变简便了,然而寻找到有效地Cent Os源也是很困难的, 因此我至今还未搞定。
   
   今天下午开始制作基于windows server 2003版的虚拟镜像, 因有了在rhel下制作的经验倒也没遇到太大的困难。 然而如何就将java程序以服务的形式在windows下启动则还是个需要探索的问题(rhel下很好处理,直接写个shell脚本即可置后台运行即可,不过send mail太多了)。

   ————————java程序制作成windows服务(x86_32位)—————————————
我是采用的Java Service Wrapper工具, 下载地址:
http://sourceforge.net/projects/wrapper/files/(当下最新版为3.5.6的)

步骤:
1、解压缩java service wrapper包,假设目录为:wrapper_home
2、建立一个目录比如:D盘server文件夹里面建立bin、conf、logs、lib文件夹。
3、将wrapper_home/bin目录里wrapper.exe
   将wrapper_home/src/bin目录里App.bat.in
   将wrapper_home/src/bin目录里InstallApp-NT.bat.in
   将wrapper_home/src/bin目录里UninstallApp-NT.bat.in
   统一拷贝至server/bin目录里,并去掉后缀名in。
   将wrapper_home/src/conf目录wrapper.conf.in拷贝至server/conf目录里去掉后缀名in
   再将wrapper_home/lib/目录里面的wrapper.jar和wrapper.dll拷贝至server/lib目录里面
4、将你的应用程序打成jar包后放入server/lib目录里面,如果程序依赖第三方架包,同样将jar包放入该目录下。
5、配置server/conf/wrapper.conf文件。
主要修改以下几项即可:
#你的JVM位置(文中有进行设置的地方...):
wrapper.java.command=%JAVA_HOME%\bin\java
#classpath:里面添加上你要执行的应用程序jar,以及依赖的第三方jar,有多个依次类推
wrapper.java.classpath.1=../lib/应用程序.jar
wrapper.java.classpath.2=../lib/wrapper.jar
wrapper.java.classpath.3=../bin/第三方.jar
# Java Library Path (location of Wrapper.DLL or libwrapper.so)

#你的Java应用类(一般而言就是包含main函数的类),
wrapper.app.parameter.1= service.Server.Serverbegin
# 服务名
wrapper.ntservice.name=server
# Display name of the service
wrapper.ntservice.displayname=server
# 服务描述
wrapper.ntservice.description=receive message
其他的配置根据你的需要改变即可
6.  对以上配置的App.bat进行测试,运行App.bat,dos窗口中显示;
7.  对以上配置的服务进行测试,运行server/bin/InstallApp-NT.bat将把你的应用(此处为server)安装到Win32系统服务中了。
8.  打开控制面板-管理程序-服务,看到server已经在系统服务中了,其他用法就与我们熟悉的Windows服务一样了。

bin/App.bat  控制台方式运行程序

bin/InstallApp-NT.bat  安装服务

bin/UninstallApp-NT.bat 删除服务
wrapper.java.library.path.1=../lib(存放.dll的位置)
#MAIN CLASS 此处决定了使用Java Service Wrapper的方式
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
(注意: 此处不是指你自己的java类,而是表明你采用的方式)
   
DSC0000.jpg
   需要强调的是: 如果你工程的jar包很多的话可以采取正则表达式的方式,例如我的lib下有80个jar文件,那么你可以使用/*.jar的形式。 经本人验证OK!

   附加说明: 由于本人是在虚拟机下执行上述实验的,不便截图与复制配置文件内容回本机, 因此截图与配置文件都是copy网上的(可能部分文件名有出入,自己摸索一下)... ...

   看到有另外一种做法:http://liubey.iyunv.com/blog/701993
   此方法本人没有验证过... ...

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-219649-1-1.html 上篇帖子: 解开Windows的Administrator帐号的两个疑问 下篇帖子: 在windows xp下编译WebKit
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表