将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工具,可以使Java应用在Windows环境中更加稳定、可控。合理配置XML文件和管理服务生命周期,可以确保Java程序在Windows环境下高效、安全地运行。
本文将详细介绍如何利用Java Service Wrapper工具将Java程序转换为Windows服务运行的过程。 #### Java Service Wrapper简介 Java Service Wrapper是一款开源工具,用于将任何Java应用程序封装成一个Windows服务...
在Java编程环境中,将Java程序注册为Windows服务是一项常见的任务,尤其当你的应用程序需要在系统启动时自动运行或后台持续运行时。这个过程涉及到Java的JNI(Java Native Interface)和Windows的服务管理API。以下...
然而,为了实现自动化启动和后台运行,我们可以将Java程序转换为Windows服务。这个过程涉及到几个关键步骤和技术,包括使用特定的工具来包装Java程序并将其注册为系统服务。下面将详细阐述如何实现这一目标。 首先...
通过以上步骤,你可以成功地将一个Java程序转换为Windows服务,使其能够高效、稳定地在后台运行。这个过程涉及到了Java应用程序的封装、Windows服务的管理和配置,以及日志记录等多个方面的知识,对于Java开发者来说...
然而,为了实现Java程序在Windows开机时自动启动,并且在用户登录之前就已经运行,我们需要将其转化为一个Windows服务。这个过程涉及到Java程序的打包、服务创建工具的使用以及服务管理的一些基本知识。 首先,我们...
然而,为了实现后台自动运行、开机启动以及与其他系统服务进行交互,我们可以将Java程序注册为Windows服务。这种方式使得Java程序具备了类似传统Windows服务的功能,能够独立于用户会话存在。 首先,我们需要了解...
将Java程序转换为Windows服务是通过JavaService工具实现的,这个工具允许Java应用程序在Windows操作系统中作为服务运行,从而在系统启动时自动启动程序,并且可以在服务管理器中进行管理。下面将详细讲解如何操作和...
在IT行业中,将Java应用程序转换为Windows服务是一个常见的需求,特别是在需要后台自动运行或系统启动时自动启动的应用程序场景中。下面将详细解释这个过程,以及如何利用给定的文件来实现这一目标。 首先,我们要...
1. 自动启动:将Java程序作为服务,可以确保在系统启动时自动运行。 2. 非交互式运行:服务可以在没有用户登录的情况下运行,避免依赖于桌面环境。 3. 故障恢复:如果服务意外终止,Wrapper可以自动重试或重启服务,...
在Java世界中,将应用程序注册为Windows服务可以让它在系统启动时自动运行,无需用户交互。这通常是通过Java Service Wrapper(JSW)或其他类似的工具实现的。本文将深入讲解如何利用Java Agent技术来注册Java应用为...
JSW允许我们将Java应用程序包装为Windows服务,它提供了启动、停止、重启等管理功能。在JSW的配置文件(如wrapper.conf)中,我们可以设置`wrapper.service.restart.delay`和`wrapper.service.restart.interval`属性...
一旦Java程序被转换为服务,可以通过Windows服务管理器或者Wrapper提供的命令行工具进行启动、停止、重启操作。这比直接通过命令行启动Java应用更为方便,尤其是在无人值守的环境下。 **源码级别的集成** 对于...
通过使用Java Service Wrapper,我们可以轻松地将Java程序安装成Windows服务,从而实现后台运行、系统级别的管理和监控等功能。遵循上述步骤,您可以快速地完成配置过程,确保Java程序作为Windows服务稳定运行。 ##...
### 使用Wrapper将Java程序注册为Windows的服务 ...通过以上步骤,可以轻松地将Java程序注册为Windows的服务,实现自动化运行和管理。这对于需要长时间运行且不希望因系统重启而中断的应用程序非常有用。
Java Service Wrapper是一个强大的工具,它允许开发者将Java应用程序轻松地包装为Windows系统服务,以便在操作系统启动时自动启动Java程序,并能实现与系统服务相同的管理功能,如自动重启、日志记录等。这个工具...
Wrapper是一个第三方软件,它允许我们将Java应用转换为Windows服务,确保程序在系统启动时自动运行,并具备后台服务的所有特性。 **Wrapper是什么?** Wrapper是一个轻量级的程序,它能够作为一个容器,将Java应用...
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
最近工作需要将java程序打包发布,并且能安装成windows服务,而且需要在没有安装jre的机器上运行。研究了一下java service wrapper,在网上找了相关的资料,但是都说得不是很详细,照着做有一定难度。所以我分步总结...
java的windows自动化-自动运行java程序java的windows自动化-自动运行java程序