我有一个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的快捷方式并尝试以administratot开始 - 那么服务不会部署。我认为这是因为用户控制帐户(因为在Windows XS和Windows Server 2003上从快捷方式部署工作正常),但我无法更改这些设置。 如何在Windows Server 2008 r2上解决这个问题?
答案 0 :(得分:0)
问题解决了。 需要将此行添加到bat文件的标题
cd /d %~dp0
在这行中,%cd%返回的当前目录是windows \ system32,而不是bat dir。