Java 从Commons守护程序在Procrun中正确使用DependsOn选项

Java 从Commons守护程序在Procrun中正确使用DependsOn选项,java,windows-services,batch-file,procrun,apache-commons-daemon,Java,Windows Services,Batch File,Procrun,Apache Commons Daemon,我有一个java应用程序作为windows服务运行,使用来自Commons守护程序。它在Windows XP SP3上运行 应用程序依赖于,我通过以下批处理脚本安装了该服务 @echo off if "%OS%" == "Windows_NT" setlocal set "APPLICATION_SERVICE_HOME=%cd%" set EXECUTABLE_NAME=TestGenerator.exe set EXECUTABLE=%APPLICATION_SERVICE_HOME%\

我有一个java应用程序作为windows服务运行,使用来自Commons守护程序。它在Windows XP SP3上运行

应用程序依赖于,我通过以下批处理脚本安装了该服务

@echo off

if "%OS%" == "Windows_NT" setlocal

set "APPLICATION_SERVICE_HOME=%cd%"
set EXECUTABLE_NAME=TestGenerator.exe
set EXECUTABLE=%APPLICATION_SERVICE_HOME%\%EXECUTABLE_NAME%
set SERVICE_NAME=TestGenerator

set CG_START_CLASS=net.test.testgenerator.startup.TestGeneratorApp
set CG_STOP_CLASS=%CG_START_CLASS%
set CG_START_METHOD=controlTestGeneratorService
set CG_STOP_METHOD=%CG_START_METHOD%
set CG_START_PARAMS=start
set CG_STOP_PARAMS=stop
set CG_DEPENDS_ON=ActiveMQ
set CG_STARTUP_TYPE=auto

set PR_DESCRIPTION=Test Generator v1.0
set "PR_INSTALL=%EXECUTABLE%"
set "PR_LOGPATH=%APPLICATION_SERVICE_HOME%\logs"
set  "PR_CLASSPATH=%APPLICATION_SERVICE_HOME%;%APPLICATION_SERVICE_HOME%\testgenerator.jar;%APPLICATION_SERVICE_HOME%\lib"
set PR_DISPLAYNAME=Test Generator Service

echo Installing service '%SERVICE_NAME%' ...

"%EXECUTABLE%" //IS//%SERVICE_NAME%  --Startup %CG_STARTUP_TYPE%  --StartClass %CG_START_CLASS% --StopClass %CG_STOP_CLASS% 
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartMode jvm --StopMode jvm --DependsOn %CG_DEPENDS_ON% 
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartMethod %CG_START_METHOD% --StopMethod  %CG_STOP_METHOD% 
"%EXECUTABLE%" //US//%SERVICE_NAME% --StartParams %CG_START_PARAMS% --StopParams %CG_STOP_PARAMS% 
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%APPLICATION_SERVICE_HOME%\temp;" --JvmMs 128 --JvmMx 256
echo The service '%SERVICE_NAME%' was installed.
但是,ActiveMQ不会在“管理工具\服务依赖项”选项卡中显示为依赖项

当我查看
HKEY\U LOCAL\U MACHINE\SOFTWARE\Apache SOFTWARE Foundation\Procrun 2.0\TestGenerator\Parameters
时,它的
DependsOn
键已正确设置为ActiveMQ,但
DependsOnService
键已输入
HKEY\u LOCAL\u MACHINE\SOFTWARE\Apache SOFTWARE Foundation\Procrun 2.0\TestGenerator\Parameters
未列出ActiveMQ

我可以使用SC.exe设置依赖项,但它不允许我指定上述所有其他参数


有谁能告诉我,他们是否能够成功地将DependsOn与Procrun一起使用,如果是,我做得有什么不对吗?

我终于发现,
--DependsOn
选项,与其他一些命令一起使用,例如,
--Startup
只能使用
//IS
或install命令,而不能使用
//US
或update命令

在上面的示例中,将
--DependsOn
选项移动到
//IS
命令将解决此问题

"%EXECUTABLE%" //IS//%SERVICE_NAME%  --Startup %CG_STARTUP_TYPE%  --StartClass %CG_START_CLASS% --StopClass %CG_STOP_CLASS% --DependsOn %CG_DEPENDS_ON% 

如果其他人在使用procrun时遇到问题,我写了一些,包括这个问题。

嗨,Ulrich,我不确定我的apache守护进程服务是否设置正确,你介意在这里检查我的问题吗:?谢谢