Am 02.09.20 um 16:25 schrieb Mark Thomas:
> On 01/09/2020 17:31, Jan Patrick Lübbert wrote:
> 
> <snip/>
> 
>> I tried the JVM mode with the service config (arguments as array in a
>> PowerShell script):
>>
>>      "install",
>>      "MyService",
>>      "--DisplayName=""My Service""",
>>      "--JavaHome=""$RootPath\jre""",
>>      "--Jvm=""$RootPath\jre\bin\client\jvm.dll""",
>>      "--StartMode=jvm",
>>      "--StopMode=jvm",
>>      "--JvmOptions9=""--module-path modules""",
>>      "++JvmOptions9=""--module de.my.package/de.my.package.Main""",
>>     "--StartClass=de.my.package.Main",
>>     "--StopClass=de.my.package.Main",
>>      "--StopTimeout=300",
>>      "--JvmMs=128",
>>      "--JvmMx=1024",
>>      "--JvmSs=128",
>>      "--LogPath=$RootPath\log",
>>      "--LogPrefix=service",
>>      "--LogLevel=Debug",
>>      "--StdOutput=auto",
>>      "--StdError=auto",
>>      "--StartPath=$RootPath",
>>      "--Startup=auto",
>>      "--LogJniMessages=1"
>>      
>> The log output:      
>>
>> ( prunsrv.c:1763) [ 5048] Apache Commons Daemon procrun log initialized.
>> ( prunsrv.c:1767) [ 5048] Apache Commons Daemon procrun (1.2.2.0 64-bit)
>> started.
>> ( prunsrv.c:621 ) [ 5048] Installing service...
>> ( prunsrv.c:660 ) [ 5048] Installing service 'MyService' name 'My Service'.
>> ( prunsrv.c:694 ) [ 5048] Service 'MyService' installed.
>> ( prunsrv.c:1848) [ 5048] Apache Commons Daemon procrun finished.
>> ( prunsrv.c:1763) [ 7308] Apache Commons Daemon procrun log initialized.
>> ( prunsrv.c:1767) [ 7308] Apache Commons Daemon procrun (1.2.2.0 64-bit)
>> started.
>> ( prunsrv.c:1677) [ 7308] Running Service 'MyService'...
>> ( prunsrv.c:1448) [ 4548] Inside ServiceMain...
>> ( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 2,
>> dwWin32ExitCode = 0, dwWaitHint = 3000, dwServiceSpecificExitCode = 0.
>> ( prunsrv.c:1203) [ 4548] Starting service...
>> ( javajni.c:216 ) [ 4548] Explicit RuntimeLib specified
>> 'D:\MyService\jre\bin\client\jvm.dll'
>> ( javajni.c:285 ) [ 4548] loading jvm 'D:\MyService\jre\bin\client\jvm.dll'
>> ( javajni.c:795 ) [ 5688] Jvm Option[0] vfprintf
>> ( javajni.c:795 ) [ 5688] Jvm Option[1] --module-path modules
>> ( javajni.c:795 ) [ 5688] Jvm Option[2] --module
>> de.my.package/de.my.package.Main
>> ( javajni.c:795 ) [ 5688] Jvm Option[3] exit
>> ( javajni.c:795 ) [ 5688] Jvm Option[4] abort
>> ( javajni.c:795 ) [ 5688] Jvm Option[5] -Xms128m
>> ( javajni.c:795 ) [ 5688] Jvm Option[6] -Xmx1024m
>> ( javajni.c:795 ) [ 5688] Jvm Option[7] -Xss128k
>> ( javajni.c:536 ) [ 5688] Unrecognized option: --module-path modules
>> ( javajni.c:806 ) [ 5688] CreateJavaVM Failed with error [-1]
>> ( javajni.c:806 ) [ 5688] Das System kann die angegebene Datei nicht finden.
>> ( javajni.c:1057) [ 5688] Java Worker thread finished : with status = 2
>> ( prunsrv.c:1258) [ 4548] Failed to start Java
>> ( prunsrv.c:1611) [ 4548] ServiceStart returned 4.
>> ( prunsrv.c:910 ) [ 4548] reportServiceStatusE: dwCurrentState = 1,
>> dwWin32ExitCode = 1066, dwWaitHint = 0, dwServiceSpecificExitCode = 4.
>> ( prunsrv.c:1679) [ 7308] Run service finished.
>> ( prunsrv.c:1848) [ 7308] Apache Commons Daemon procrun finished.
>>
>> If I change Jvm to java.exe and StartMode to Java the stderr log states:
>>
>> 2020-09-01 18:18:10 Apache Commons Daemon procrun stderr initialized.
>> NOTE: Picked up JDK_JAVA_OPTIONS: --module-path modules --module
>> de.my.package/de.my.package.Main
>>
>> Error: Option --module is not allowed in environment variable
>> JDK_JAVA_OPTIONS
>>
>> What am I doing wrong?
> 
> At first glance nothing. That is pretty much exactly what I tried first
> when I set this up to test locally. And my test environment isn't work
> either.
> 
> The good news is that with a few changes it should be possible to get
> this working. At least, I got my simple test working.
> 
> The first change is the module path. As documented in [1] you need to use:
> 
> --module-path=modules
> 
> (note the addition of the equals)
> 
> The second is how you define the main module. As documented in [2] you
> need to use:
> 
> -Djdk.module.main=module
> 
> 
> So my full config was:
> 
> prunsrv.exe install
> --DisplayName "Test"
> --JavaHome "C:\java\adopt-14.0.2+12"
> --Jvm "C:\java\adopt-14.0.2+12\bin\server\jvm.dll"
> --JvmOptions ""
> --JvmOptions9
> "--module-path=C:\Users\god\Documents\bin#-Djdk.module.main=test"
> --JvmMs 128
> --JvmMx 256
> --JvmSs 0
> --StopPath "C:\Users\god\Documents\bin"
> --StopClass "org.apache.markt.Test"
> --StopParams ""
> --StopTimeout 0
> --StartPath "C:\Users\god\Documents\bin"
> --StartClass "org.apache.markt.Test"
> --StartParams ""
> --StartMode "jvm"
> --LogPath "C:\Users\god\Documents\bin"
> --LogPrefix "commons-daemon"
> --LogLevel "Debug"
> --StdError "auto"
> --StdOutput "auto"
> --LogJniMessages 0
> --Rotate 0
> 
> where the equivalent command line was:
> java --module-path . --module test/org.apache.markt.Test
> 
> HTH,
> 
> Mark
> 

Yes, this is finally a working solution. Thank you very much for your
support!

JP



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to