我的 Java 类包含以下方法:
public static void main(String[] argv)//启动服务
public static void stop()//停止服务
我正在使用来自 Apache Commons Daemon 的 Procrun将 Java 类设置为 Windows 服务。当我尝试停止服务时出现错误“[618 javajni.c] [error] 找不到类 com/caphyon/service/JavaService 中的静态方法‘void main(String[])’”。问题是我试图在服务关闭时调用停止方法,但它似乎用“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 stop()"
如何设置 prunsrv 在关闭服务时调用的 StopMethod?
最佳答案
您不应将返回类型(即“void”)或括号放在 --StopMethod 参数的值中。所以,命令应该是:
prunsrv.exe //US//JavaService --StopClass=com.caphyon.service.JavaService --StopMode=jvm --StopPath="C:\JavaService" --StopMethod="stop"
关于带有 Procrun、StopMethod 问题的 Java Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512279/