https://bz.apache.org/bugzilla/show_bug.cgi?id=61590
Bug ID: 61590
Summary: service.bat fails to recognize JDK 9
Product: Tomcat 9
Version: 9.0.1
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: Packaging
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: -----
Created attachment 35399
--> https://bz.apache.org/bugzilla/attachment.cgi?id=35399&action=edit
Patch to correctly detect JDK 9
When trying to install Tomcat 9.0.1 on Windows (x64) where the JAVA_HOME
environment variable points to the JDK 9, service.bat fails to recognize the
Java binaries:
> C:\apache-tomcat-9.0.1\bin>service install
> The JAVA_HOME environment variable is not defined correctly
> This environment variable is needed to run this program
> NB: JAVA_HOME should point to a JDK not a JRE
This is because service.bat checks for "java.exe", "javaw.exe" and
"server\jvm.dll" within a "jre\bin" directory, but the "jre" directory doesn't
exist on JDK 9.
Instead, the necessary binaries can be found directly within the JDK's "bin"
folder.
Note: Running the Tomcat Service using the SYSTEM user (root) works, but if you
want to run the Tomcat Service as a different user with Java 9, it seems that
additionally to having access to the Tomcat directory (e.g. "D:\Tomcat"), the
user also must have read access access to its parent directory (e.g. "D:\") (or
even the drive root) for some reason.
Otherwise (if the user only has access to the Tomcat directory), starting the
service will fail and the following error will be printed to stderr.log:
> 2017-10-07 14:52:24 Commons Daemon procrun stderr initialized
> java.lang.NoClassDefFoundError: org/apache/catalina/startup/Bootstrap
> Caused by: java.lang.ClassNotFoundException: >
> org.apache.catalina.startup.Bootstrap
> at >
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
> at >
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
Exception in thread "main"
This isn't the case with Java 8, where it is sufficient to have access to only
the Tomcat directory.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]