Jira fails to start as a Windows service

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs 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

(Auto-migrated image: description temporarily unavailable)

The following error occurs while starting the service 

(Auto-migrated image: description temporarily unavailable)

The following error can be seen in the Windows event viewer

(Auto-migrated image: description temporarily unavailable)

Similar errors like below may occur in the jira-stderr.<date>.log file ( You may not see the "Unrecognized option" )

(Auto-migrated image: description temporarily unavailable)

Cause

The "--add-opens / --add-export" options are being used as JVM parameters, however, Java 1.8 does not support them.

Solution

Remove any of the following 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

Updated on March 11, 2025

Still need help?

The Atlassian Community is here for you.