Jira fails to start as a Windows service
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Jira bundled with Java 1.9 may fail to start as a Windows service if the Java Virtual Machine is set to use jvm.dll from JRE 1.8 and Java 9 Options are added as the JVM parameter. Starting Jira manually using start-jira.bat works.
Environment
Jira is bundled with Java 1.9+ and configured to use Java 1.8 at Windows service configuration
Diagnosis
Windows service configuration with jvm.dll configured to use from Java 1.8
The following error occurs while starting the service
The following error can be seen in the Windows event viewer
Similar errors like below may occur in the jira-stderr.<date>.log file ( You may not see the "Unrecognized option" )
Cause
The "--add-opens /
--add-export" options are being used as JVM parameters, however, Java 1.8 does not support them
Solution
Remove the JVM parameters from the service configuration
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.nio.file=ALL-UNNAMED
--add-opens=java.base/javax.crypto=ALL-UNNAMED
--add-opens=java.management/javax.management=ALL-UNNAMED
--add-opens=java.desktop/sun.font=ALL-UNNAMED
--add-opens=java.base/sun.reflect.generics.parser=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
--add-exports=java.base/sun.util.calendar=ALL-UNNAMED
--add-exports=java.base/sun.security.action=ALL-UNNAMED
--add-exports=java.xml/jdk.xml.internal=ALL-UNNAMED