web-dev-qa-db-fra.com

Tomcat 6 Java_HOME

J'essaie de définir le chemin Java_HOME pendant que mon serveur Tomcat le recherche. J'essaie de le régler, mais cela ne semble pas fonctionner et provoque une erreur lorsque je le fais. J'essaie de définir le Java dans le setclasspath.bat en utilisant

set Java_HOME="C:\Program Files (x86)\Java\jre7"

C'est au début du setclasspath.bat

set Java_HOME="C:\Program Files (x86)\Java\jre7"
if not "%Java_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
echo Neither the Java_HOME nor the JRE_HOME environment variable is defined
echo At least one of these environment variable is needed to run this program
goto exit

Lorsque je le configure et exécute "startup.bat start", il s'affiche

Les fichiers étaient inattendus à ce moment

Pouvez-vous m'aider?

20
QuinsUK

Vous pointez vers un JRE. Vous devez pointer vers un JDK qui, étant donné l'emplacement de votre JRE, pourrait être quelque chose comme C:\Program Files (x86)\Java\jdk1.6.0_26 ou similaire. Ou, si vous n'avez qu'un JRE installé, vous devrez installer un JDK complet. Tomcat doit pouvoir compiler des JSP dans des fichiers .class, ce qu'un JRE ne peut pas faire.

0
James Corcoran

Remarque: Je me rends compte que cette question est déjà assez ancienne, mais la plupart des réponses publiées ici sont incomplètes ou inexactes. J'espère que cela vous aidera à quelques maux de tête.

Premièrement: Tomcat n'en a pas a besoin d'un JDK pour fonctionner, il fonctionnera très bien avec un JRE, tant qu'il sait que c'est un JRE.

Deuxièmement, l'erreur de la question d'origine provient d'un problème de syntaxe de la commande set Java_HOME=.... Apache pourrait mieux gérer cela en supprimant et en ajoutant " Des guillemets.

De plus, je recommande fortement de créer un fichier setenv.bat Dans le dossier bin. Il est absent par défaut, donc si vous n'en avez pas déjà un, créez-le et ajoutez-y vos lignes set Java_HOME=... Ou set JRE_HOME=....

Exécuter avec JRE

Selon running.txt :

La variable JRE_HOME est utilisée pour spécifier l'emplacement d'un JRE. La variable Java_HOME est utilisée pour spécifier l'emplacement d'un JDK.

L'utilisation de Java_HOME donne accès à certaines options de démarrage supplémentaires qui ne sont pas autorisées lorsque JRE_HOME est utilisé.

Si JRE_HOME et Java_HOME sont spécifiés, JRE_HOME est utilisé.

Donc, pour démarrer de cette façon, vous aurez besoin des éléments suivants:

set "Java_HOME="
set "JRE_HOME=C:\Program Files (x86)\Java\jre7"

La suppression de la variable Java_HOME Est une sécurité intégrée, mais elle n'est pas vraiment requise. Selon les documents, Tomcat essaiera d'abord d'utiliser la variable JRE.

Solution au problème en question

Faites particulièrement attention à la position des guillemets. De cette façon, gardez la chaîne entière ensemble dans une variable, sans inclure les guillemets dans le contenu de la variable elle-même.

Par exemple:

set %TEST%="hello"
echo "%TEST%"

Sortira ""hello"".

set "%TEST%=hello"
echo "%TEST%"

Sortira "hello".

Ainsi, le script de fichier de commandes de démarrage essayait d'utiliser ""C:\Program Files (x86)\Java\jre7"", dans lequel le premier espace non échappé se trouve entre "Programme" et "Fichiers".

Comme déjà souligné, la suppression des guillemets (dans ce cas particulier au moins) fonctionnerait, mais il est dangereux de s'appuyer sur cela. Jouez plutôt prudemment dès le début et enveloppez le nom de la variable et valeur entre guillemets.

36
ZaLiTHkA

J'ai eu le même problème sur Windows 7 avec la définition suivante (je l'ai mis dans un fichier setenv.bat dans le dossier bin jdk comme spécifié par RUNNING.txt de Tomcat 7.

set Java_HOME="C:\Program Files (x86)\Java\jre7"

J'ai juste essayé de supprimer complètement les guillemets doubles:

set Java_HOME=C:\Program Files (x86)\Java\jre7

Et Tomcat a alors commencé.

8
Stephen Clothier
  • Tout d'abord, installez Java et localisez le chemin d'installation).
  • Localisez le chemin d'installation de Tomcat et recherchez startup.bat dans\bin
  • Ouvrez startup.bat et ajoutez les lignes ci-dessous (exemple) juste après setlocal et avant rem Guess CATALINA_HOME if not defined
:: Java
set Java_HOME=D:\thushara_data\Java\jdk1.8.0_73
set PATH=%Java_HOME%\bin;%PATH%

Essayez maintenant de relancer startup.bat

4
tk_

Placez le chemin entre guillemets:

set Java_HOME="C:\Program Files (x86)\Java\jre7"

L'erreur est due au fait qu'il analyse les fichiers dans les fichiers programme en tant que paramètre distinct, auquel SET ne s'attend pas. Pourquoi SET ne le lit pas correctement, je ne peux pas le dire sans en savoir plus sur le système d'exploitation que vous utilisez, la commande Shell à partir de laquelle vous exécutez Tomcat, etc.

2
Jesse
  • Si vous ne pouvez pas définir les variables manuellement: pour définir Java_HOME and JRE_HOME

  • aller pour faire avancer le paramétrage du système et cliquer sur environment variables

  • sous system variables, cliquez

  • nouveau nom de variable: Java_HOME
  • valeur variable: [path of jdk]C:\Program Files\Java\jdk1.8.0_181 et cliquez sur ok

  • ajouter de même JRE_HOME

  • cliquez sur le nouveau nom de variable: JRE_HOME
  • valeur variable: [path of jre]C:\Program Files\Java\jre1.8.0_181
  • cliquez sur Ok > Ok > Ok
2
Adarsh J

La raison pour laquelle votre commande a échoué est qu'elle contient des espaces blancs entre 'Program Files (x86)' et qu'elle commence donc à lire la commande à partir de 'Files (x86)'. Donc, au lieu de cela, nous le mettons entre guillemets doubles tels que les suivants. essaye ça..

set Java_HOME="C:\"Program Files (x86)"\Java\jre7"
1
You_Shall_Not_Pass

Essayez https://askubuntu.com/questions/446294/how-to-start-Tomcat7-when-catalina-sh-does-not-work Il peut vous donner un aperçu même si ce n'est pas Windows il recherche toujours ces scripts Shell, sauf que leurs extensions dans Windows sont .bat pas .sh

0
Douglas G. Allen