web-dev-qa-db-fra.com

Tomcat ne fonctionne pas bien que le chemin Java_HOME soit correct

Lorsque j'essaie d'exécuter Tomcat avec startup.bat, le message d'erreur suivant s'affiche:

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

Mais alors j'essaie C:\>echo %Java_home% et j'obtiens le résultat suivant

C:\Program Files\Java\jdk1.6.0_25\bin

J'ai même essayé de définir manuellement Java_HOME dans la liste de variables système, mais le problème persiste.

Que puis-je faire pour le résoudre?

J'utilise Windows 7.


Mettre à jour

Après avoir défini une nouvelle variable système nommée Java_HOME et défini son chemin d'accès à "C:\Program Files\Java\jdk1.6.0_25\bin\", j'ai réessayé le script de démarrage et cette fois une nouvelle erreur s'est produite.

D:\Work\Apache-Tomcat-6.0.35\bin>startup.bat
Files\Java\jdk1.6.0_25"" was unexpected at this time.

Une idée de ce que cette erreur signifie?

J'ai même essayé de définir le chemin d'accès à "C:\Program Files\Java\jdk1.6.0_25\" (c'est-à-dire sans bin ) mais la même erreur se produit.

23
Quazi Irfan

Essayez d’installer Java ailleurs - dans un répertoire sans espaces. Définissez à nouveau la variable Java_HOME et réessayez. Je me souviens que Tomcat avait quelques problèmes sur la fenêtre XP avec des espaces si toutes les variables qu’il utilisait au démarrage des espaces contenus. Peut-être que c'est similaire avec Windows 7.

Je me souviens que je devais modifier certaines lignes dans les classes Java Tomcat qui géraient le démarrage de Tomcat.

@Edit: Luciano m'a battu pour le remarquer, mais vous devriez également supprimer bin de Java_HOME

@Edit: Je me souviens également qu'un autre correctif (qui n'a pas été testé par moi-même) consistait à définir Java_HOME sur la version abrégée, par exemple. C:\Progra~1\Java\jdk1.6.0_25

27
Mateusz Dymczyk

Je pense que votre Java_HOME devrait pointer vers

C:\Program Files\Java\jdk1.6.0_25

au lieu de

C:\Program Files\Java\jdk1.6.0_25\bin

C'est-à-dire sans le dossier bin .

METTRE À JOUR

Cette nouvelle erreur me semble si je configure Java_HOME avec les guillemets, comme vous l'avez fait. Utilisez-vous des guillemets? Si oui, supprimez-les.

19
Luciano

Évitez les points-virgules à la fin des variables d'environnement ... de Java_HOME ou JRE_HOME

Java_HOME=C:\Program Files\Java\jdk1.6.0_25\bin

et

JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre

devrait être comme indiqué ...

8
Nitesh Jain

J'avais Win 8 x86 installé. Ma variable Path avait l'entrée C:\Program Files\Java\jdk1.6.0_31\bin et j'avais également les variables suivantes:

  • Java_HOME: C:\Program Files\Java\jdk1.6.0_31;
  • JRE_HOME: C:\Program Files\Java\jre6;

Mon Tomcat est installé à C:\Program Files\Apache Software Foundation\Apache-Tomcat-7.0.41

Et toujours cela n'a pas fonctionné pour moi.

J'ai essayé en remplaçant Program Files dans ces chemins par Progra~1. J'ai également essayé de déplacer Java vers un autre dossier afin que le chemin d'accès complet ne contienne aucun espace. Mais rien n'a fonctionné.

Enfin, les variables d'environnement qui ont fonctionné pour moi sont:

  • Variable de chemin gardé telle quelle avec Program Files complet i.e. C:\Program Files\Java\jdk1.6.0_31\bin
  • Java_HOME: C:\Program Files\Java\jdk1.6.0_31
  • Supprimé JRE_HOME

Donc, ce que j'ai fait est supprimé JRE_HOME et supprimé point-virgule à la fin de Java_HOME. Je pense que le point-virgule ne devrait pas être un problème, même si je l'ai enlevé. Je donne ces paramètres, car après beaucoup de recherches sur Google, rien ne fonctionnait pour moi et, tout à coup, ceux-ci semblent fonctionner. Vous pouvez répliquer et voir si cela fonctionne pour vous.

Cela a également fonctionné pour Win 7 x64, où

  • Variable de chemin contenue C:\Program Files (x86)\Java\jdk1.7.0_17\bin
  • Java_HOME est défini sur C:\Program Files (x86)\Java\jdk1.7.0_17 (sans point-virgule)

S'il vous plaît, dites-moi pourquoi cela a fonctionné. Je sais que supprimer JRE_HOME était une solution étrange, mais est-ce que vous devinez quelle différence cela fait?

5
Mahesha999

Supprimez le 'bin' de Java_HOME. Cela résout le problème.

2
cijothomas

Définissez la variable d'environnement ([Touche Windows] + [Pause], passez à "Avancé", cliquez sur "Variables d'environnement", dans "Variables système" (liste du bas), cliquez sur "Nouveau" (ou "Modifier" si vous l'avez déjà.) ),

nom: Java_HOME

valeur: C:\PROGRA ~ 1\Java\JDK16 ~ 1.0_3

pour C:\Program Files\Java\jdk1.6.0_32

cliquez sur OK", 

aller à "chemin" dans "variables système",

ajouter ; à la fin de la ligne (sauf s'il en existe déjà une),

ajouter: C:\PROGRA ~ 1\Java\JDK16 ~ 1.0_3\bin

cliquez sur "ok" à travers tout. - redémarrez votre ordinateur (conseillé) 

1
user257319

Parfois, semi-colon fait la matière veuillez vous assurer 

Java_HOME=c:\Program Files\Java\jdk1.6.0_32 

mais non 

Java_HOME=c:\Program Files\Java\jdk1.6.0_32;

Même problème que j'ai eu mais pas résolu

0
user3418679

J'ai supprimé le Tomcat et l'ai décompressé à nouveau et cela a fonctionné.

0
Alex

Définir les variables d'environnement pour Java_HOME et JRE_HOME sans le\bin . Cela a fonctionné pour moi

0
buddhi weerasinghe

Pour référence avec Atlassian's Bamboo, le problème était lié au fait que j'avais enveloppé la commande de marques de parole.

Alors

SET JRE_HOME="C:\Program Files\Java\jre1.8.0_121"

A eu tort, où comme la bonne version est 

SET JRE_HOME=C:\Program Files\Java\jre1.8.0_121

Cela m'a donné le message d'erreur

Files\Java\jre1.8.0_121"" was unexpected at this time.
0
tim.baker

Je mets le 

nom de variable: Java_HOME valeur: C:\Program Files\Java\jdk1.6.0_32

Je définis ces propriétés dans des variables système/d’environnement sans point-virgule, Tomcat étant exécuté sur mon système.

Ça marche vraiment.

0
Veluru

il existe deux types de variable d'environnement first La variable utilisateur, si votre chemin d'accès y est utilisé ne fonctionnera que pour cet utilisateur particulier. Dans mon système, j'ai défini Java_HOME dans la variable système, cela ne fonctionnait pas, puis dans le chemin .__ 

0
satya

Pour exécuter Tomcat8, vous devez définir JRE_HOME dans Env Variable. 

Java_HOME seul ne suffira pas même s'il est correctement défini. 

JRE_HOME = C:\Program Files\Java\jdk1.8.0_77\jre

Vous devez sélectionner le JRE contenu dans le SDK, c’est-à-dire un avec votre installation JDK (SDK) .

Lorsque la compilation de JDK est nécessaire pour prendre en charge JSP, compilez des servlets générés à partir de fichiers * .jsp. Sinon, exécuter JRE est nécessaire. Ainsi, lorsque vous développez, vous avez besoin de Java_HOME et lorsque vous déployez, vous avez besoin de JRE_HOME. 

0
vimal krishna

Vérifiez également que vous disposez de la version correcte de Tomcat pour le type de processeur. J'avais installé un Tomcat 64 bits sur un système d'exploitation 32 bits, mais cela me donnait l'exception Java_HOME alors que ce n'était pas le cas du tout.

0
jimmy