我的Java类包含下列方法:Java的Windows服务与Procrun,StopMethod问题
公共静态无效的主要(字符串[]的argv)//启动服务
公共静态无效停止()//停止服务
我正在使用来自Apache Commons Daemon的Procrun将Java类设置为Windows服务。当我尝试停止服务时出现错误“[618 javajni.c] [error]静态方法'void main(String [])'in com/caphyon/service/JavaService not found”。问题是我正试图在服务关闭时调用stop方法,但它似乎用'void main(String [])'覆盖StopMethod。以下是我在设置服务时使用的停止和启动参数:
prunsrv.exe // US // JavaService --StartClass = com.caphyon.service.JavaService --StartMode = jvm --StartPath =“ C:\ JavaService“
prunsrv.exe // US // JavaService --StopClass = com.caphyon.service.JavaService --StopMode = jvm --StopPath =”C:\ JavaService“--StopMethod =”void停止()“
如何设置StopMethod prunsrv在关闭服务时调用?
我将参数更改为--StopMethod =“stop”,但同样的错误仍然显示在日志中。它似乎覆盖了--StopMethod的选项,并改为调用“main”。 “[618 javajni.c] [error]找不到类com/caphyon/service/JavaService中的静态方法'void main(String [])' – mcdon
它看起来也像stop()方法需要字符串数组作为它的工作参数。 –
你说得对,如果我将java中的方法更改为“public static void stop(String [] argv)”,那么它将正常工作。它看起来像procrun不喜欢无参数的Java函数。 – mcdon