#java #prunsrv
#java #prunsrv
Вопрос:
Я попытался установить Java-программу с помощью prunsrv. Среда — 64-разрядная версия Windows 2008 R2, файл jar соответствует 64-разрядной версии Java 1.8. Также была прикреплена запись реестра службы результатов.
Исходный код класса Java похож на этот:
package prcrun;
public class TestMain {
private static boolean stop = false;
private static int i = 0;
public static void start() {
while (!stop) {
System.out.println("Started: " i );
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void stop() {
stop = true;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
start();
}
}
Сценарий Prunsrv:
set SERVICE_NAME=PcrunTest
set PR_INSTALL=C:prcrunamd64prunsrv.exe
REM Service log configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=c:test
set PR_STDOUTPUT=c:teststdout.txt
set PR_STDERROR=c:teststderr.txt
set PR_LOGLEVEL=Error
REM Path to java installation
set PR_JVM=C:javabinserverjvm.dll
set PR_CLASSPATH=pcruntest.jar
REM Startup configuration
set PR_STARTUP=auto
set PR_STARTMODE=jvm
set PR_STARTCLASS=prcrun.TestMain
set PR_STARTMETHOD=start
REM Shutdown configuration
set PR_STOPMODE=jvm
set PR_STOPCLASS=prcrun.TestMain
set PR_STOPMETHOD=stop
C:prcrunamd64prunsrv.exe //IS//%SERVICE_NAME%
При попытке запустить службу я получил следующую ошибку:
Windows не удалось запустить службу на Win2008. Ошибка: 1067: процесс неожиданно завершился.
Пожалуйста, посоветуйте, что я сделал не так в этом.
Большое спасибо!
Комментарии:
1. Что внутри
c:teststdout.txt
иc:teststdout.txt
? Есть ли что-нибудь в журналах system / prunsrv? имхо, это единственный способ точно определить проблему.2. @andbi В файлах журнала не было записей. Он также сгенерировал файл журнала, когда я использовал опцию TS для тестирования службы, но этот файл также был пуст.
3. Вам необходимо указать параметр —JvmOptions .
4. @grzegorz Спасибо за информацию! Я постараюсь посмотреть, решит ли это мою проблему.