Tomcat ne fonctionne pas même si JAVA HOME path est correct
Lorsque j'essaie d'exécuter tomcat en utilisant startup.bat
, j'obtiens l'erreur suivante,
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 FilesJavajdk1.6.0_25bin
J'ai même essayé de définir JAVA_HOME
manuellement sur la liste des variables système, mais ce 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 sur "C:Program FilesJavajdk1.6.0_25bin"
, j'ai essayé à nouveau le script de démarrage et cette fois je obtenez une nouvelle erreur.
D:Workapache-tomcat-6.0.35bin>startup.bat
FilesJavajdk1.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 à "C:Program FilesJavajdk1.6.0_25"
(c'est-à-dire sans bin) mais la même erreur se produit.
17 réponses
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 Window XP avec des espaces si des variables qu'il utilisait lors du démarrage des espaces contenus. Peut-être que C'est similaire avec Windows 7.
Je me souviens que j'ai dû changer certaines lignes dans les classes Java Tomcat qui géraient le démarrage Tomcat.
@Edit: Luciano m'a battu pour le remarquer mais vous devriez également supprimer bin
de JAVA_HOME
@Edit: je me souviens aussi qu'un autre correctif (ne l'a pas testé moi-même, cependant) était de définir JAVA_HOME
à la version abrégée par exemple C:\Progra~1\Java\jdk1.6.0_25
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 dossierbin .
Mise à jour
Cette nouvelle erreur m'apparaît si je mets le JAVA_HOME avec les guillemets, comme vous l'avez fait. Êtes-vous à l'aide de guillemets? Si oui, retirez-les.
Évitez les points-virgules à la fin des variables d'environnement... depuis 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é...
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 aussi 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 cela n'a toujours pas fonctionné pour moi.
J'ai essayé en remplaçant Program Files
dans ces chemins avec Progra~1
. J'ai également essayé en déplaçant JAVA vers un autre dossier afin que le chemin complet ne contienne aucun espace. Mais rien n'a fonctionné.
Enfin les variables d'environnement cela a fonctionné pour moi sont:
- variable de chemin conservée telle quelle Avec full
Program Files
c'est-à-direC:\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é le 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 supprimé. Je donne ces paramètres, car après beaucoup de googling rien n'a fonctionné 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 gagner 7 x64, où
- variable de chemin contenue
C:\Program Files (x86)\Java\jdk1.7.0_17\bin
-
{[2] } est défini sur
C:\Program Files (x86)\Java\jdk1.7.0_17
(sans point-virgule)
Dites-moi pourquoi cela a fonctionné, je sais que la suppression de JRE_HOME
était une solution étrange, mais toute supposition quelle différence cela fait?
Définir la Variable D'environnement ([touche Windows] + [touche Pause], passer à "Avancé", cliquez sur "Variables D'environnement", dans "Variables système" (Liste inférieure), 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 fichiers\Java \ jdk1.6. 0_32
Cliquez sur "ok",
Aller à "chemin" dans "variables système",
Add; à la fin de la ligne (à moins qu'il n'y en ait déjà une),
Ajouter: C:\PROGRA~1 \ Java\JDK16~1.0_3 \ bin
Cliquez sur "ok" à travers tout. -- redémarrez votre ordinateur (conseillé)
J'ai défini le
Nom de la Variable: JAVA_HOME valeur : C:\Program fichiers\Java \ jdk1.6. 0_32
Je définis ces propriétés dans les variables système/environnement sans point-virgule, tomcat est en cours d'exécution sur mon système.
Ça marche vraiment.
Assurez-vous également que vous avez la bonne version de Tomcat pour le type de CPU. J'avais installé un tomcat 64 bits sur un O / S 32 bits mais il me donnait L'exception JAVA_HOME quand ce n'était pas du tout le cas.
Il existe deux types de variables d'environnement première variable utilisateur si vous chemin dans cela, cela fonctionnera uniquement pour cet utilisateur particulier. la seconde est la variable système Si vous définissez le chemin dans ce qu'il est utilisé par tous les types d'utilisateurs.. Dans mon système, J'ai défini JAVA_HOME dans la variable système, cela ne fonctionnait pas, puis j'ai défini path in Variable utilisateur c'est working.....so essayez dans les deux types de variable d'environnement...
Parfois, le point-virgule fait de la matière veuillez vous assurer
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32
, Mais pas
JAVA_HOME=c:\Program Files\Java\jdk1.6.0_32;
Même problème que j'ai eu mais pas résolu
Définit les variables D'environnement pour JAVA_HOME et JRE_HOME sans le \ bin. Cela a fonctionné pour moi
J'ai supprimé le Tomcat et l'ai décompressé à nouveau et cela a fonctionné.
Pour exécuter Tomcat8, vous devez définir JRE_HOME dans la Variable Env.
JAVA_HOME seul ne fera 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 qui se trouve dans le SDK, c'est-à-dire un avec votre installation JDK(SDK). En d'autres termes, votre JAVA_HOME + \jre
Lors de la compilation JDK est nécessaire pour prendre en charge JSP, pour compiler les Servlets qui sont générés à partir de *.fichiers jsp. Sinon, pour exécuter JRE est nécessaire. Donc quand vous développez vous avez besoin de JAVA_HOME et quand vous déployez vous avez besoin JRE_HOME.
Pour référence pour moi avec le bambou D'Atlassian, le problème était parce que j'avais enveloppé la commande dans des marques de discours
Donc
SET JRE_HOME="C:\Program Files\Java\jre1.8.0_121"
Était faux, 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.
Supprimer le point-virgule et vous pouvez voir ce lien: http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html
First Run the tomcat directly through the tomcat /bin folder with
startup.bat if running sucessful the set the variable as below sample
Valeur JAVA_HOME : C:\Program fichiers\Java \ jdk1. 6. 0_32;
Chemin: C:\Program fichiers\Java \ jdk1. 6. 0_32 \ bin;
CATALINA_HOME=C: \ Program Files \ Apache Software Foundation\Apache Tomcat 7.0.27;
PATH= % PATH%; % JAVA_HOME%\bin;%CATALINA_HOME%\bin;
si nécessaire CLASS_PATH: % CATALINA_HOME%\lib; % JAVA_HOME%\lib;
J'ai eu un problème similaire et Veuillez noter que nous n'avons pas besoin de définir JAVA_HOME sauf si nous allons utiliser le mode débogage. tomcat dans windows 7 peut gérer les espaces dans les variables d'environnement le problème est à cause de "bin" dans le chemin. définir JRE_HOME sur C:\Program Files (x86) \ Java\jre1.8. 0_65 a résolu mon problème et tomcat est opérationnel sans aucun problème