2014-06-18 3 views
0

나는 다시 내 마음을 빼앗은 또 다른 사례를 가지고 있습니다..bat를 Windows 서비스로 실행하십시오.

그래서, 실행중인 자바 클래스 (.jar)를 Windows 서비스로 실행하려고하는데, 지금까지 시도한 모든 시도가 실패했습니다.

start "" javaw -jar C:\LocalService.jar 

배치가 잘 작동 : 조금 쉽게하기 위해, 나는 배치 파일로 내 항아리를 돌렸다 만, 여기 백그라운드에서 항아리를 실행하는 코드입니다 느릅 나무.

sc create "LocalService" binPath= "C:\LocalService.bat" 

서비스가 올바르게 설치하지만 곧 내가 그것을 시작하려고, 그것은 오류가 팝업 (코드 오류 : 그러나 나는 cmd를에서 다음 줄을 사용하여 서비스 등이 배치를 설치하는 것을 시도했다 1053은 서비스가 제대로 시작되지 않는다고 말합니다.)

또한 NSSM (비 흡진 서비스 관리자) 소프트웨어를 사용해 보았습니다. 서비스는 잘 설치되지만 서비스가 시작되지 않습니다.

내가 누락 된 부분을 알고 계십니까?

그건 그렇고, 나는이 모든 일을 Windows 7 Professional에서하고 있습니다.

감사합니다.

+0

나에게 맞는 도구가 잘못되었습니다. Windows 서비스에서 jar 파일을 래핑하려면 [Apache Procrun] (http://commons.apache.org/proper/commons-daemon/procrun.html)을 사용하십시오. – ForguesR

+0

서비스는 시작 및 중지를 제어하는 ​​지정된 기능을 가진 특수 라이브러리 (때로는 프로그램)입니다. Windows Resource Kit에서는 srvany를 통해 모든 프로그램을 서비스로 변환 할 수 있습니다 (가능한 한 멀리).java 프로그램 (java.exe?) 또는 cmd.exe를 jar 또는 bat 파일을 실행하는 서비스로 전환하십시오. 복잡성을 줄이고 java direct를 실행할 수도 있습니다. – phd443322

답변

0

귀하의 의견을 보내 주셔서 감사합니다. 두 도구 모두 나를 위해 일하지 못했습니다. 슬프게도. 그러나 Java Service Wrapper라는 소프트웨어로이 작업을 수행 할 수있었습니다. 이것은 자유 소프트웨어가 아니므로 라이센스를 구매해야 작동 할 수 있습니다. 단계는 간단했다 :

1 - 작성 서비스의 이름을 가진 폴더를 다음 내부 4 개 폴더 추가 : 당신이 가지고있는 lib 폴더에 2-LIB, 빈, 로그, conf의

을 jar와 wrapper.jar 및 wrapper.dll을 복사하십시오 (이 마지막 두 파일은 웹 사이트에서 다운로드 한 압축 파일입니다)

3. bin 폴더에 4 개의 파일을 복사하십시오 : InstallApp-NT.bat.in, App.bat.in, UnintstallApp-NT.bat.in 및 wrapper.exe (라이센스를 지불 한 다른 사람으로부터 파일 wrapper.exe를 얻을 수 있으면이 마지막 하나가 라이센스를 정의합니다. .이 파일은 또한 웹 사이트에서 우편으로왔다). batc에서 .in을 제거하십시오. h 파일

4. 가장 까다로운 단계는 다음과 같습니다. conf라는 래퍼의 폴더에서 wrapper.conf.in이라는 파일을 복사해야합니다. 확장자를 제거하고 tex 편집기로 편집해야합니다. 편집해야하는 가장 중요한 라인은 다음과 같습니다

wrapper.java.command=C:\Program Files (x86)\Java\jre7\bin\java //Specify JRE Path. Will work with eviroment variable 

wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperJarApp //Choosing this class means your are using a .jar file to execute when the service starts 

wrapper.java.classpath.1=C:\LocalService\lib\wrapper.jar //This one is constant. 
wrapper.java.classpath.2=C:\LocalService\lib\LocalService.jar //This is the path to your executable jar 

wrapper.java.library.path.1=C:\LocalService\lib //Path to your own lib folder (the you created at the begining) 

wrapper.app.parameter.1=C:\LocalService\lib\LocalService.jar // again the path to your jar 

그런 다음 바로 InstallApp-NT.bat을 실행하고 서비스를 시작하고, 그러나 설명서에 따라,

그것은 절대 경로로 나에게 일

를 완료 그것도 상대 경로와 함께 잘 작동합니다. 이것은 내 문제를 해결 한 방법이며 같은 문제가있는 사람이 도움이 될 것이라고 희망합니다.

다음에 보자!

관련 문제