0

我有一个java应用程序。该应用程序在 Windows Server 2008 r2 上作为 Windows 服务(使用 procrun 包装器)运行。通过 install.bat 文件将应用程序安装为 Windows 服务,其中包含以下文本:

set "APPLICATION_SERVICE_HOME=%cd%"

set SERVICE_NAME=CollectDO 
set PR_DESCRIPTION= Обеспечивает прием сведений по ДО и запись их в БД
set PR_DISPLAYNAME=Сбор данных по ДО 
set EXECUTABLE_NAME=prunsrv.exe
set PR_INSTALL=%APPLICATION_SERVICE_HOME%\%EXECUTABLE_NAME% 

REM Service log configuration set
PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=%APPLICATION_SERVICE_HOME%\Servicelog
set PR_LOGLEVEL=Info
REM Path to java installation
set PR_JVM=..\..\jre\bin\server\jvm.dll
set PR_CLASSPATH=..\dist\SvhWinService.jar
REM Startup configuration
set PR_STARTUP=auto
set PR_STARTMODE=jvm
set PR_STARTCLASS=svhwinservice.SvhWinServWrapper
set PR_STARTMETHOD=start
REM Shutdown configuration
set PR_STOPMODE=jvm
set PR_STOPCLASS=%PR_STARTCLASS%
set PR_STOPMETHOD=stop
REM JVM configuration
set PR_JVMMS=256
set PR_JVMMX=1024
set PR_JVMSS=4000
set PR_JVMOPTIONS=-Duser.language=EN;-Duser.region=en

:remove
::---- Remove the service -------
 %EXECUTABLE_NAME% //DS//%SERVICE_NAME%
 echo The service '%SERVICE_NAME%' has been removed
REM goto end

REM Install service
%EXECUTABLE_NAME% //IS//%SERVICE_NAME%

当我以管理员身份从控制台(cmd.exe)启动此文件时 - 然后服务部署正常。但是,如果我创建 install.bat 的快捷方式并尝试以管理员身份启动 - 那么服务不会部署。我认为这是因为用户控制帐户(因为在 Windows XS 和 Windows Server 2003 上从快捷方式部署工作正常),但我无法更改这些设置。如何在 Windows server 2008 r2 上解决这个问题?

4

1 回答 1

0

纠纷解决了。需要将此行添加到 bat 文件的标题中

cd /d %~dp0

没有这一行,%cd% 返回的当前目录是 windows\system32,而不是 bat 目录。

于 2013-12-30T08:49:50.990 回答