Problems with Running openHAB as service

  • Platform information:
    • Hardware: _i5
    • OS: Windows 10
    • Java Runtime Environment: Zulu 8
    • openHAB version: 2.5.10
  • Issue of the topic: I followed instructions to install openHAB as a service and I get an error that it ca’t start and then error 1607. I’ve gone through what I can find in related posts and tried a few of the fixes but nothing helped. I noticed in my wrapper config file there are alot of references to KARAF_HOME and KARAF_BASE but I never setup these variables. Created JAVA_HOME, all install steps up to this point went fine. OpenHAB runs fine with start.bat.
  • If logs where generated please post these here using code fences:
    Sorry don’t know what a code fence is: Here is my wrapper log
    STATUS | wrapper | 2020/12/05 07:37:19 | openHAB2 installed.
    STATUS | wrapper | 2020/12/05 07:37:41 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 07:37:42 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 07:37:42 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 07:37:42 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“eufQQHmKLPWjCjcH” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=13732 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 07:37:42 | Critical error: wait for JVM process failed
    STATUS | wrapper | 2020/12/05 07:47:43 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 07:47:44 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 07:47:44 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 07:47:44 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“WZT1z6cC2_p_cPl0” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=13964 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 07:47:44 | Critical error: wait for JVM process failed
    STATUS | wrapper | 2020/12/05 08:11:37 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 08:11:37 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 08:11:37 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 08:11:37 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“JLWOM7PnECgvdhAm” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=10612 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 08:11:37 | Critical error: wait for JVM process failed
    STATUS | wrapper | 2020/12/05 08:25:29 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 08:25:29 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 08:25:29 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 08:25:29 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“EAq6Db3uqpiQWSM1” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=8308 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 08:25:29 | Critical error: wait for JVM process failed
    STATUS | wrapper | 2020/12/05 08:27:02 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 08:27:02 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 08:27:02 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 08:27:02 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“LSCS17GoSNMBiJi1” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=3112 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 08:27:02 | Critical error: wait for JVM process failed
    STATUS | wrapper | 2020/12/05 08:42:14 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 08:42:14 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 08:42:14 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 08:42:14 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“9GzCK_zCiAQ8q5Oi” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=4788 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 08:42:14 | Critical error: wait for JVM process failed
    STATUS | wrapper | 2020/12/05 08:55:36 | --> Wrapper Started as Service
    STATUS | wrapper | 2020/12/05 08:55:36 | Launching a JVM…
    FATAL | wrapper | 2020/12/05 08:55:36 | Unable to execute Java command. The system cannot find the file specified. (0x2)
    FATAL | wrapper | 2020/12/05 08:55:36 | “%JAVA_HOME%\bin\java” -Dkaraf.home=“C:\openHAB2\runtime” -Dkaraf.base=“C:\openHAB2\userdata” -Dkaraf.data=“C:\openHAB2\userdata” -Dkaraf.etc=“C:\openHAB2\userdata\etc” -Dcom.sun.management.jmxremote -Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;C:\openHAB2\runtime\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;C:\openHAB2\runtime\lib\ext" -Dopenhab.home=“C:\openHAB2” -Dopenhab.conf=“C:\openHAB2\conf” -Dopenhab.runtime=“C:\openHAB2\runtime” -Dopenhab.userdata=“C:\openHAB2\userdata” -Dopenhab.logdir=“C:\openHAB2\userdata\logs” -Dfelix.cm.dir=“C:\openHAB2\userdata\config” -Dorg.osgi.service.http.port=8080 -Dorg.osgi.service.http.port.secure=8443 -Djava.util.logging.config.file=“C:\openHAB2\userdata\etc\java.util.logging.properties” -Dkaraf.logs=“C:\openHAB2\userdata\logs” -Dfile.encoding=UTF-8 -Xmx512m -Djava.library.path=“C:\openHAB2\userdata\lib\wrapper\” -classpath “C:\openHAB2\runtime\lib\boot\org.apache.karaf.diagnostic.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.jaas.boot-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.main-4.2.7.jar;C:\openHAB2\runtime\lib\boot\org.apache.karaf.specs.activator-4.2.7.jar;C:\openHAB2\runtime\lib\boot\osgi.core-6.0.0.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper-main.jar;C:\openHAB2\userdata\lib\wrapper\karaf-wrapper.jar” -Dwrapper.key=“xEnn8T3iIfno00gD” -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=5444 -Dwrapper.version=“3.2.3” -Dwrapper.native_library=“wrapper” -Dwrapper.service=“TRUE” -Dwrapper.cpu.timeout=“10” -Dwrapper.jvmid=1 org.apache.karaf.wrapper.internal.service.Main
    FATAL | wrapper | 2020/12/05 08:55:36 | Critical error: wait for JVM process failed

The environment variable JAVA_HOME is set system wide ?
From every user account you can do

dir %JAVA_HOME%\bin\

and content of that directory will be shown ?

Edite: added the missing % at the end of the environment varialble

Thanks for the reply. It tells me can’t find the path specified. I tried as you wrote it and also with an % after HOME (was that an omission?). I did have it set as a user variable, so deleted that one and created it as a System variable but no change. After the change to system variable, openhab no longer launches. It just stays at “Launching the openHAB runtime…” I assume I created JAVA_HOME correctly the first time since it was launching fine when I had it as a user variable. Any other ideas would be appreciated.

your dir command still doesn’t produce contents of bin but I think my service problem is solved. It was probably stuck on command line command to start because it was already running. I rebooted and OpenHab service is running. I guess the issue was System versus User variable.