web-dev-qa-db-fra.com

Différence entre Java_HOME et JRE_HOME

J'ai un script qui démarre Tomcat et il ressemble à ceci:

rem set JRE_HOME=C:\Program Files\Java\jdk1.7.0_03
set JRE_HOME=C:\Program Files\Java\jre7\
set CATALINA_HOME=D:\test\Server\Apache-Tomcat-6.0.18
"%CATALINA_HOME%\bin\catalina.bat" jpda start

Je peux définir JRE_HOME sur mon dossier jre ou mon dossier JDK et Tomcat fonctionnera, mais si je supprime JRE_HOME et utilise Java_HOME à la place, Tomcat ne fonctionnera que si je lui donne le chemin d'accès au dossier JDK.

Alors, quelle est la différence entre JRE et Java home, pourquoi Tomcat se comporte-t-il de cette manière?

30
Goozo

Tomcat active certaines options de débogage supplémentaires au démarrage si vous utilisez un JDK complet. Ces options nécessitent le JDK afin que Tomcat vérifie que vous en utilisez réellement un si vous prétendez que vous devez vous assurer que ces options n'échouent pas si elles sont utilisées.

Je vois rarement ces options utilisées. Je pense que je les ai utilisés une fois pour travailler pendant 10 ans avec Tomcat.

Lorsque vous utilisez JRE_HOME, Tomcat n'active pas les options spécifiques au JDK, il ne vérifie donc pas si vous utilisez le JDK complet plutôt que le JRE.

16
Mark Thomas