2012-11-07 4 views
0

내 Java 프로젝트를위한 nsis 스크립트를 작성했습니다. 성공적으로이 nsis 스크립트를 사용하여 exe 파일을 만들었습니다. 설치 과정의 마지막 단계는 내 애플리케이션을 배치 파일을 사용하여 Windows 서비스로 설치하는 것입니다. 다음 코드를 사용하여 명령 줄을 통해 성공적으로 설치했습니다.NSIS 스크립트를 사용하여 Windows 서비스로 응용 프로그램을 설치하는 방법은 무엇입니까?

"c:\program Files\program Files\test\bin\prunsrv.exe" //IS//servicename --Startup=auto --Jvm="Auto" --Classpath="%CLASSPATH%" --StartMode=jvm --StartClass=com.class.name --StartParams start --StopMode=jvm --StopClass=com.class.name --StopParams stop 

nsis 스크립트를 통해 실행 한 동일한 명령이 제대로 작동하지 않습니다. 다음 코드를 시도했습니다

Exec '"$INSTDIR\bin\prunsrv.exe" //IS//servicename --Startup=auto --Jvm="Auto" --Classpath="%CLASSPATH%" --StartMode=jvm --StartClass=com.class.name --StartParams start --StopMode=jvm --StopClass=com.class.name --StopParams stop' 

$ INSTDIR이 디렉토리는 c : \ program Files \ test를 참조하십시오.

+0

그리고 문제는 정확히 무엇입니까? 서비스가 부분적으로 설치되었거나 전혀 설치되지 않았습니까? 잘못된 구성입니까? – Anders

+0

문제는 응용 프로그램이 nsis 스크립트를 실행할 때 windows servcie로 설치되지 않는다는 것입니다. – Ami

답변

1

ExpandEnvString을 사용하여 확장 전에 % classpath %를 확장하십시오.

+0

내 명령에 ExpandEnvStrings를 사용하는 방법? ExpandEnvString $ 0 % CLASSPATH % Exec "$ INSTDIR \ bin \ prunsrv.exe"를 시도했습니다. // IS // servicename --Startup = auto --Jvm = "Auto"--Classpath = "$ 0"--StartMode = jvm --StartClass = com.class.name --StartParams start --StopMode = jvm --StopClass = com.class.name --StopParams stop ' 그러나 이것은 작동하지 않습니다. – Ami

+0

NSIS와 NSIS를 비교해보십시오. 프로세스 모니터로 batchfile 실행 작업 중 ... – Anders

관련 문제