Technical Anshu
Tutorials Blog
☕ Java Version Fix

Jira JAVA HOME Not Set or Wrong JDK Version Fix the Java Problem Behind Startup Failure

Jira is a Java program wearing a web interface. When the Java underneath it changes or disappears, Jira fails faster than it can even write a log - and that speed is your clue.

✍️ Technical Anshu🪟 Windows Server⏱️ 8 minute read
🎥 Watch the full fix in the video — every step shown live on screen

Some Jira startup failures produce long logs. Java failures produce almost nothing, because if Java cannot start, Jira cannot run - and cannot log. The usual story: someone upgraded the JDK, a Windows cleanup removed an old Java, or JAVA_HOME was changed for another application, and Jira's service now points at a Java that is missing, 32-bit where it should be 64-bit, or simply a version your Jira release does not support. This page shows how to find which Java Jira is really using and set it right.

Command Prompt - checking the Java Jira will actually use (illustration)
java -version java version "1.8.0_202" (the PATH Java - not always Jira's Java) setenv.bat says: JAVA_HOME=C:\Java\jdk-21 Problem: this Jira version does not support Java 21.
The version on your PATH and the version Jira uses can be two different things. Example values shown as an illustration.
1

Understand How Jira Chooses Its Java

Jira does not simply use whatever Java Windows prefers. Its startup scripts look at JAVA_HOME first, then JRE_HOME, and the Windows service uses the Java recorded in its own configuration. That is why 'Java is installed' and 'Jira still fails' are both true at the same time - they are talking about different Java installations.

  1. Open the Jira bin folder inside the install directory and find setenv.bat
  2. Look for lines setting JAVA_HOME or JRE_HOME - note the exact folder they name
  3. Open that folder and confirm a bin folder with java.exe actually exists inside it
  4. Run that copy directly: java -version from inside its bin folder, and write the version down
  5. If the named folder does not exist, you have found the fault - Jira is pointing at a Java that was moved or removed
2

Match the JDK to Your Exact Jira Version

This is the step people guess at, and guessing is expensive. Every Jira release supports a specific set of Java versions: older Jira releases run on Java 8 or 11, newer ones require Java 11 or 17, and the newest require Java 17 or later. A Java that is too new fails just as hard as one that is too old - the class-file and module changes are real, not fussiness.

  1. Find your Jira version - it is in the footer of any Jira page, in the installation's version file, or in your last working atlassian-jira.log
  2. Open Atlassian's Supported Platforms page for that exact Jira version and read its Java requirement
  3. Compare it with the version you verified in the previous section - they must overlap
  4. If they do not, the honest fix is to point Jira at a supported JDK (install one side by side if needed), not to force the current one
  5. Avoid 32-bit Java entirely - Jira needs a 64-bit JVM to use a useful heap
3

Fix JAVA_HOME and the Service Configuration

Once you know the right JDK, make every pointer agree. Changing only the system environment variable is the classic half-fix: the service may keep using the Java stored in its own wrapper settings, and the failure survives your repair.

  1. Stop the Jira service
  2. Edit setenv.bat so JAVA_HOME names the supported JDK folder - no trailing bin, just the JDK root
  3. Check the Windows system environment variables too, in case a conflicting JAVA_HOME is set there
  4. If your Jira runs as a service, open the service's Java settings using the Tomcat service configuration tool in the Jira bin folder and confirm the Java path there matches
  5. Start the service and watch the catalina log - a correct Java shows Jira moving on to the port and database stages
4

Recognise the Signatures of a Java Failure

Java problems have tells. The service fails within seconds. Windows Event Viewer shows the service or JVM erroring before Jira's own logs even begin. And when logs do exist, phrases like UnsupportedClassVersionError (Java too old for the code) or module-access errors (Java too new and strict) name the mismatch directly. A 'Could not create the Java Virtual Machine' message, though, is usually memory settings, not version - that belongs to the heap fix, not this one.

  1. Check failure speed: seconds means Java or heap; minutes means later stages
  2. Check Event Viewer's Application log for JVM errors at the failure time
  3. Search the catalina log for UnsupportedClassVersionError or java.lang errors near the top of the failure
🔴 Change one thing at a time. Java repairs tempt people to upgrade Jira, Java and the database driver in one afternoon. If the system then works, you will never know which change mattered - and if it fails, you have three suspects instead of one. Fix the Java pointer, start Jira, confirm, and only then plan any upgrade - with a backup of the Jira home directory and database taken first.

🎥 See the Complete Fix in the Video

The full Jira startup repair, step by step, with the exact screens and log lines shown live.

▶️ Watch Full Video
❓ Common Questions (FAQ)

Java is installed and works fine for other apps. Why does Jira still fail

Because Jira probably is not using that Java. Jira follows JAVA_HOME in its own setenv.bat and the Java recorded in its Windows service configuration, which can point to an older or removed JDK while other applications happily use the system Java. Verify the exact java.exe inside the folder Jira points to, with java -version run from that folder.

Should I upgrade Java to the latest version to fix Jira

Only if Atlassian's Supported Platforms page for your exact Jira version lists that Java version. Newer is not automatically supported - a too-new Java breaks Jira just as reliably as a too-old one, through changed class versions and stricter module rules. Match the documented range; do not chase the highest number.

Jira started failing right after a Java update on the server. What happened

The update likely replaced or removed the JDK that Jira's JAVA_HOME points to, or changed the system JAVA_HOME that another admin later copied into Jira's configuration. The fix is not to roll back the whole server - install or keep a supported JDK side by side and point only Jira at it, using setenv.bat and the service's Java settings.

This guide is based on the Technical Anshu video on fixing a Jira that will not start • Stuck on a step? Ask in the video comments — you will get a reply 🙏