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?
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.
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.
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é.
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
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.
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
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
JRE_HOME
[path of jre]C:\Program Files\Java\jre1.8.0_181
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"
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