带有 Procrun、StopMethod 问题的 Java Windows 服务

标签 java windows-services procrun

我的 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/

相关文章:

java - 图像未占据布局中的整个 ImageView

java - 如何提取字符串列表中最左边最常见的字符?

java - 没有已知的包错误。安卓5.0

c# - 安装后设置服务依赖

c# - 与正在运行的 Windows 服务交互?

java - 使用 apache daemon windows 服务执行 jar 时出现错误 "The directory name is invalid."

javascript - 如何使用 javascript 和 Selenium 双击 WebElement

windows - 需要关于用不可见的 WinForm 应用程序替换 Windows 服务的建议

java - commons-daemon procrun & log4j 下如何解释 user.dir 系统属性?

Windows 上的 Tomcat