Technical Anshu
Tutorials Blog
☕ Correction de la version Java

Jira JAVA HOME non défini ou version JDK incorrecte Résoudre le problème Java derrière l'échec de démarrage

Jira est un programme Java doté d'une interface web. Lorsque le Java situé en dessous change ou disparaît, Jira échoue plus rapidement qu'il ne peut même écrire un journal - et cette vitesse est votre indice.

✍️ Technical Anshu🪟 Windows Server⏱️ 8 minute read
🎥 Regardez le correctif complet dans la vidéo – chaque étape affichée en direct à l'écran

Certains échecs de démarrage de Jira produisent de longs journaux. Les échecs Java ne produisent presque rien, car si Java ne peut pas démarrer, Jira ne peut pas s'exécuter - et ne peut pas se connecter. L'histoire habituelle : quelqu'un a mis à niveau le JDK, un nettoyage de Windows a supprimé un ancien Java, ou JAVA_HOME a été modifié pour une autre application, et le service de Jira pointe désormais vers un Java manquant, 32 bits alors qu'il devrait être 64 bits, ou simplement une version que votre version Jira ne prend pas en charge. Cette page montre comment trouver quel Java Jira utilise réellement et le configurer correctement.

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.
La version sur votre PATH et la version utilisée par Jira peuvent être deux choses différentes. Exemples de valeurs présentées à titre d’illustration.
1

Comprendre comment Jira choisit son Java

Jira n'utilise pas simplement ce que Java Windows préfère. Ses scripts de démarrage examinent d'abord JAVA_HOME, puis JRE_HOME, et le service Windows utilise le Java enregistré dans sa propre configuration. C'est pourquoi « Java est installé » et « Jira échoue toujours » sont tous deux vrais en même temps : ils parlent de différentes installations Java.

  1. Ouvrez le dossier Jira bin dans le répertoire d'installation et recherchez setenv.bat
  2. Recherchez les lignes définissant JAVA_HOME ou JRE_HOME - notez le dossier exact auquel elles nomment
  3. Ouvrez ce dossier et confirmez qu'un dossier bin avec java.exe existe réellement à l'intérieur.
  4. Exécutez cette copie directement : java -version depuis son dossier bin et notez la version.
  5. Si le dossier nommé n'existe pas, vous avez trouvé le problème : Jira pointe vers un Java qui a été déplacé ou supprimé.
2

Faites correspondre le JDK à votre version exacte de Jira

C’est l’étape à laquelle les gens devinent, et deviner coûte cher. Chaque version de Jira prend en charge un ensemble spécifique de versions Java : les anciennes versions de Jira fonctionnent sur Java 8 ou 11, les plus récentes nécessitent Java 11 ou 17 et les plus récentes nécessitent Java 17 ou version ultérieure. Un Java trop récent échoue aussi durement qu'un Java trop ancien - les modifications des fichiers de classe et des modules sont réelles et non compliquées.

  1. Recherchez votre version de Jira : elle se trouve dans le pied de page de n'importe quelle page Jira, dans le fichier de version de l'installation ou dans votre dernier atlassian-jira.log de travail.
  2. Ouvrez la page Plateformes prises en charge d'Atlassian pour cette version exacte de Jira et lisez ses exigences Java.
  3. Comparez-le avec la version que vous avez vérifiée dans la section précédente : elles doivent se chevaucher
  4. Si ce n'est pas le cas, la solution honnête consiste à pointer Jira vers un JDK pris en charge (en installer un côte à côte si nécessaire), sans forcer celui actuel.
  5. Évitez complètement Java 32 bits - Jira a besoin d'une JVM 64 bits pour utiliser un tas utile
3

Correction de JAVA_HOME et de la configuration du service

Une fois que vous connaissez le bon JDK, assurez-vous que chaque pointeur soit d'accord. Changer uniquement la variable d'environnement système est la demi-correction classique : le service peut continuer à utiliser le Java stocké dans ses propres paramètres de wrapper, et l'échec survit à votre réparation.

  1. Arrêtez le service Jira
  2. Modifiez setenv.bat pour que JAVA_HOME nomme le dossier JDK pris en charge - pas de bin de fin, juste la racine du JDK
  3. Vérifiez également les variables d'environnement du système Windows, au cas où un JAVA_HOME conflictuel y serait défini.
  4. Si votre Jira s'exécute en tant que service, ouvrez les paramètres Java du service à l'aide de l'outil de configuration du service Tomcat dans le dossier Jira bin et confirmez que le chemin Java correspond.
  5. Démarrez le service et regardez le journal Catalina - un Java correct montre à Jira passer aux étapes du port et de la base de données
4

Reconnaître les signatures d'un échec Java

Les problèmes Java ont des conséquences. Le service échoue en quelques secondes. L'Observateur d'événements Windows affiche les erreurs du service ou de la JVM avant même que les journaux de Jira ne commencent. Et lorsque des journaux existent, des expressions telles que UnsupportedClassVersionError (Java trop ancien pour le code) ou des erreurs d'accès au module (Java trop nouveau et strict) nomment directement la non-concordance. Cependant, un message « Impossible de créer la machine virtuelle Java » concerne généralement les paramètres de mémoire, et non la version – qui appartient au correctif de tas, pas à celui-ci.

  1. Vérifiez la vitesse d'échec : les secondes signifient Java ou tas ; les minutes signifient les étapes ultérieures
  2. Vérifiez le journal des applications de l'Observateur d'événements pour les erreurs JVM au moment de l'échec.
  3. Recherchez dans le journal Catalina les erreurs UnsupportedClassVersionError ou java.lang en haut de l'échec.
🔴 Changez une chose à la fois. Les réparations Java incitent les gens à mettre à niveau Jira, Java et le pilote de base de données en un après-midi. Si le système fonctionne, vous ne saurez jamais quel changement était important – et s’il échoue, vous avez trois suspects au lieu d’un. Corrigez le pointeur Java, démarrez Jira, confirmez, puis planifiez ensuite toute mise à niveau - en effectuant d'abord une sauvegarde du répertoire personnel et de la base de données Jira.

🎥 Voir le correctif complet dans la vidéo

La réparation complète du démarrage de Jira, étape par étape, avec les écrans et les lignes de journal exacts affichés en direct.

▶️ Watch Full Video
❓ Questions courantes (FAQ)

Java est installé et fonctionne bien pour d'autres applications. Pourquoi Jira échoue-t-il toujours

Parce que Jira n'utilise probablement pas ce Java. Jira suit JAVA_HOME dans son propre setenv.bat et Java enregistré dans la configuration de son service Windows, qui peut pointer vers un JDK plus ancien ou supprimé tandis que d'autres applications utilisent volontiers le système Java. Vérifiez le fichier java.exe exact dans le dossier vers lequel Jira pointe, avec la version java exécutée à partir de ce dossier.

Dois-je mettre à niveau Java vers la dernière version pour réparer Jira

Uniquement si la page Plateformes prises en charge d'Atlassian pour votre version exacte de Jira répertorie cette version de Java. Les versions plus récentes ne sont pas automatiquement prises en charge : un Java trop récent brise Jira de manière aussi fiable qu'un Java trop ancien, via des versions de classe modifiées et des règles de module plus strictes. Faites correspondre la plage documentée ; ne poursuivez pas le nombre le plus élevé.

Jira a commencé à échouer juste après une mise à jour Java sur le serveur. Que s'est-il passé

La mise à jour a probablement remplacé ou supprimé le JDK vers lequel pointe JAVA_HOME de Jira, ou modifié le système JAVA_HOME qu'un autre administrateur a ensuite copié dans la configuration de Jira. Le correctif ne consiste pas à restaurer l'intégralité du serveur - installez ou conservez côte à côte un JDK pris en charge et pointez uniquement Jira dessus, en utilisant setenv.bat et les paramètres Java du service.

Ce guide est basé sur la vidéo Technical Anshu sur la réparation d'un Jira qui ne démarre pas • Coincé sur une étape ? Demandez dans les commentaires de la vidéo – vous obtiendrez une réponse 🙏