将java程序运行为Windows服务
转自:http://blog.csdn.net/dragonbbc/archive/2007/02/08/1504985.aspx
评语:此技术我用在了php运行java接口的项目中,以保证服务稳定运行。
有两种方案,一是通过JavaService来运行,二是用exe4j转换成exe程序,分别举例如下:
一、JavaService
1.首先到http://javaservice.objectweb.org/下载JavaService,最新版本为2.0.10
2.解压JavaService-2.0.10.zip,将JavaService.exe拷到要运行的java程序目录下
3.进入命令行,切换到java程序目录,运行
JavaService -install 服务名 jvm.dll文件路径 -Djava.class.path=jar文件路径(如有多个用;隔开) -start 启动类 -out 输出重定向 -err 错误信息重定向 -current 工作目录 -depends 依赖的服务 -description 服务描述信息
例如:
JavaService -install SampleService "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path=%CD%\sample.jar;%CD%\mysql-connector-java-3.0.9-stable-bin.jar -start com.test.SampleService -out %CD%\stdout.log -err %CD%\stderr.log -current %CD% -depends mysql -description "测试Java服务"
卸载的时候为:
JavaService -uninstall 服务名
例如:
Javaservice -uninstall SampleService
二、通过exe4j将java程序转换为exe程序
1.首先到http://www.ej-technologies.com/download/exe4j/files.php下载exe4j,按向导安装
2.运行exe4j,1.Welcome,直接按Next→2.project type,这里有两个选择,Regular mode和"JAR in EXE" mode,默认即可(如果程序文件较少的话可以用"JAR in EXE",将所有文件打包成一个exe文件),Next
3.输入应用程序的名字和exe输出目录,Next
4.Executable type选Service,Executable name输入要生成的exe文件名,此处可以勾选Icon file,为生成的exe文件选择一个图标,点击Advanced options→设置输出重定向和错误重定向的文件,Next→Description输入服务描述信息,选择启动类型:自动运行(Auto start),手动运行(Start on demand),依赖的服务(Dependencies),Next到第五步Java invocation
5.Class path添加相应的jar文件,然后选择Main class,Next
6.Mininum version,输入最低要求的java版本,如1.3,然后一直Next到完成
7.安装服务,进入命令行,切换到相应目录,运行生成的exe文件加参数 -install,卸载服务为 -uninstall
其它命令:
-install-demand 安装为手动启动模式
-install-auto 安装为自动启动模式
-start 启动服务
-stop 停止服务
-status 服务启动状态
另外"-"也可以换成"--"或者"/"
三、通过exe4j还有另外一种方法,就是打包为GUI application,然后通过instsrv.exe和srvany.exe运行为windows服务,方法为在exe4j第四步的时候Executable type选GUI application,其它同上
安装为服务的方法,将instsrv.exe和srvany.exe拷入相应目录,进入命令行,切换到相应目录
instsrv 服务名 %CD%\srvany.exe
然后打开注册表,展开"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名\Parameters"
新建一字符串值Application,输入生成的exe文件的路径
输入services.msc,找到相应服务,调节启动类型为自动,启动服务,OK!
instsrv.exe和srvany.exe下载地址:
http://www.electrasoft.com/srvany/srvany.exe
http://www.electrasoft.com/srvany/instsrv.exe
附:
exe4j是需要注册的,附上一个Exe4J v4.0.2的注册码:L-FLN#79829-19l6l0uowr1kw#585
补充:
服务有时候会崩溃,我的解决办法是
在windows下,通过PHP的win32扩展来检测和启动服务,需要在默认配置的php5上,添加php_win32service.dll扩展
如果是在linux下,可能就需要用shell脚本写一个守护进程了。
分享到:
相关推荐
java程序做成Windows服务运行 将winsw和xml改成同一名称
Java程序快速转换为windows服务运行
最近工作需要将java程序打包发布,并且能安装成windows服务,而且需要在没有安装jre的机器上运行。研究了一下java service wrapper,在网上找了相关的资料,但是都说得不是很详细,照着做有一定难度。所以我分步总结...
java的windows自动化-自动运行java程序java的windows自动化-自动运行java程序
javaservice是一款可将Java应用程序安装为Window服务的小工具,有了他,我们可以将任何可独立运行的jar文件安装到window服务中。
经常有需要将Java程序部署到Windows上面运行,以上软件可以转换为exe
将springboot打包成的jar文件做成windows服务,解决java程序自启动问题,适合现场部署后无人看管情况,断电后服务器启动后不用管理springboot服务,不用打开cmd,也不担心现场人员误操作关闭cmd窗口。
对以上配置的服务进行测试,运行InstallMyApp-NT.bat将把你的应用(此处为App)安装到Win32系统服务中了。 打开控制面板-管理程序-服务,看到App已经在系统服务中了,其他用法就与我们熟悉的Windows服务一样了。 ...
shell,bat脚本运行java程序, shell,bat脚本运行java程序,
java打exe java客户端 exe4j innosetup jar2exe Java打包成windows下可运行的程序
使用Eclipse创建和运行Java程序 使用Eclipse开发Java程序 Java程序的运行机制 了解常用的集成开发环境 掌握使用Eclipse创建和运行Java程序 集成开发环境 集成开发环境(Integrated Development Environment,IDE)将...
Java 自动编译运行 批处理程序 ...[c] 只编译但是不自动运行Java程序 [a] 如果发生编译或运行错误则自动打开记事本以方便修改 请注意,参数[a]必须放在参数列表的最后 更多请见 http://blog.csdn.net/nista
java程序打成jar包后,通过配置,运行脚本注册为windows服务。后续可以在windows的服务里进行启动、重启、禁用、自启动操作。
学习java的⼈都知道,Jdk是可免安装的,只要⼀台机器安装了,将java的根⽬录拷贝 到另⼀台机器,然后配置环境变量即可开发java程序。但此种⽅法下双击可执⾏jar程序⽆法运⾏java程序,原因是安装jdk的过程中会在系 ...
编程大力哥java视频 - 如何使用命令行方式运行java程序,这个视频介绍了如何使用windows自带的命令行工具来运行java程序
windows下启动java jar包的bat脚本 javaw后台启动,jdk1.8或者更高,winserver 2016 经过测试
用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系结构、开发工具和...
自己写的文本编辑器,以windows记事本为模版,增加编译运行java程序的功能,运行java程序时可截获控制台输出,并与之交互。本人也是新手,资源无偿下载,大家帮助测试,希望指出bug,提出宝贵意见帮助我改正
这是一个将spingboot项目打包的jar通过windows服务管理的项目 目录说明: config: 可放置外部yml等配置文件 firmware: 放置jar包,目前只支持一个jar包 jdk*: 放置jar依赖的java库 BatServices.exe: 64位程序,使用...
不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。如果不是因为这个问题,Java在我的眼里算是最完美的语言了,也是我最喜爱的语言。 ...