tomcat не работает, хотя путь java\_home указан правильно

<p>когда я пытаюсь запустить tomcat с помощью <code>startup.bat</code>, я получаю следующую ошибку:</p><pre><code>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 </code></pre><p>но потом я пробую <code>c:\>echo %java\_home%</code> и получаю следующий результат</p><pre><code>c:\program files\java\jdk1.6.0\_25\bin </code></pre><p>я даже пытался вручную установить <code>java\_home</code> в список системных переменных, но эта проблема остается.</p><p>что я могу сделать, чтобы решить это?</p><p>я использую windows 7.</p><hr><h2>обновление</h2><p>после установки новой системной переменной с именем java\_home и установки ее пути на <code>"c:\program files\java\jdk1.6.0\_25\bin\"</code> я снова попытался запустить скрипт запуска, и на этот раз я получил новую ошибку.</p><pre><code>d:\work\apache-tomcat-6.0.35\bin>startup.bat files\java\jdk1.6.0\_25"" was unexpected at this time. </code></pre><p>есть идеи, что означает эта ошибка?</p><p>я даже пытался установить путь к <code>"c:\program files\java\jdk1.6.0\_25\"</code> (то есть без<strong> bin </strong>), но возникает та же ошибка.</p>

<p>попробуйте установить java где-нибудь еще - в каталоге без пробелов. установите снова переменную <code>java\_home</code> и попробуйте снова. я помню, что у tomcat были некоторые проблемы в window xp с пробелами, если какие-либо переменные, которые он использовал при запуске, содержали пробелы. может быть, это похоже на windows 7.</p><p>я помню, что мне пришлось изменить некоторые строки в java-классах tomcat, которые обрабатывали запуск tomcat.</p><p><strong> @edit: </strong>лучано побил меня, чтобы я заметил это, но вы также должны удалить <code>bin</code> из <code>java\_home</code></p><p><strong> @edit: </strong>я также помню, что другим исправлением (хотя сам не проверял) было установить для <code>java\_home</code> сокращенную версию, например. <code>c:\progra~1\java\jdk1.6.0\_25</code></p>

<p>я думаю, что ваш java\_home должен указывать на</p><pre><code>c:\program files\java\jdk1.6.0\_25 </code></pre><p>вместо</p><pre><code>c:\program files\java\jdk1.6.0\_25\bin </code></pre><p>то есть без папки<strong> bin </strong>.</p><p><strong>обновление</strong></p><p>эта новая ошибка появится у меня, если я установлю java\_home с кавычками, как вы сделали. вы используете кавычки? если так, удалите их.</p>

<p>избегайте точек с запятой в конце любых переменных среды ... из java\_home или jre\_home</p><pre><code>java\_home=c:\program files\java\jdk1.6.0\_25\bin </code></pre><p>а также</p><pre><code>jre\_home=c:\program files\java\jdk1.6.0\_32\jre </code></pre><p>должно быть как показано ...</p>

<p>у меня была установлена win 8 x86. моя переменная <code>path</code> имела запись <code>c:\program files\java\jdk1.6.0\_31\bin</code>, и у меня также были следующие переменные:</p><ul> <li><code>java\_home</code>: <code>c:\program files\java\jdk1.6.0\_31;</code></li> <li><code>jre\_home</code>: <code>c:\program files\java\jre6;</code></li> </ul><p>мой tomcat установлен на <code>c:\program files\apache software foundation\apache-tomcat-7.0.41</code></p><p>и все же это не сработало для меня.</p><p>я попытался заменить <code>program files</code> в этих путях на <code>progra~1</code>. я также попытался переместить java в другую папку, чтобы полный путь к ней не содержал пробелов. но ничего не сработало.</p><p>наконец, переменные среды, которые работали для меня:</p><ul> <li>сохранял переменную пути как есть с полным <code>program files</code> т.е. <code>c:\program files\java\jdk1.6.0\_31\bin</code></li> <li><code>java\_home</code>: <code>c:\program files\java\jdk1.6.0\_31</code></li> <li>удалено <code>jre\_home</code></li> </ul><p>поэтому я удалил <code>jre\_home</code> и удалил точку с запятой в конце <code>java\_home</code>. я думаю, что точка с запятой не должна быть проблемой, хотя я ее убрал. я даю эти настройки, так как после долгих поисков у меня ничего не получалось, и вдруг они, похоже, сработали. вы можете повторить и посмотреть, работает ли он для вас.</p><p>это также работало для win 7 x64, где</p><ul> <li>переменная пути содержит <code>c:\program files (x86)\java\jdk1.7.0\_17\bin</code></li> <li><code>java\_home</code> установлен в <code>c:\program files (x86)\java\jdk1.7.0\_17</code> (без точки с запятой)</li> </ul><p>скажите, пожалуйста, почему это сработало, я знаю, что удаление <code>jre\_home</code> было странным решением, но есть предположения, что это меняет?</p>

<p>удалите «bin» из java\_home. это решает проблему.</p>

<p>задайте переменную среды ([windows key] + [pause key], переключитесь на «advanced», нажмите «environment variables», в «system variables» (нижний список), нажмите «new» (или «edit», если он у вас уже есть) ),</p><p>имя:. .\_\_ java\_home</p><p>значение:. .\_\_ c:\progra ~ 1\java\jdk16 ~ 1.0\_3</p><p>для c:\program files\java\jdk1.6.0\_32</p><p>нажмите "ок", </p><p>перейти к «пути» в «системных переменных»,</p><p>добавлять ; в конце строки (если она еще не существует),</p><p>добавить: c:\progra ~ 1\java\jdk16 ~ 1.0\_3\bin</p><p>нажмите "ок" через все. - перезагрузите компьютер (желательно) </p>

<p>иногда полуколон имеет значение пожалуйста убедитесь </p><pre><code>java\_home=c:\program files\java\jdk1.6.0\_32 </code></pre><p>но нет </p><pre><code>java\_home=c:\program files\java\jdk1.6.0\_32; </code></pre><p>та же проблема, что я получил, но не решил</p>

<p>я удалил tomcat и разархивировал его снова, и он работал.</p>

<p>установите переменные окружения для java\_home и jre\_home без\bin . это сработало для меня</p>

<p>для справки для меня с бамбуком atlassian проблема заключалась в том, что я обернул команду в речевых знаках</p><p>так</p><pre><code>set jre\_home="c:\program files\java\jre1.8.0\_121" </code></pre><p>был неправ, где как правильная версия </p><pre><code>set jre\_home=c:\program files\java\jre1.8.0\_121 </code></pre><p>это дало мне сообщение об ошибке</p><pre><code>files\java\jre1.8.0\_121"" was unexpected at this time. </code></pre>

<p>я установил </p><p>имя переменной: java\_home значение: c:\program files\java\jdk1.6.0\_32</p><p>я устанавливаю эти свойства в переменных системы/среды без точки с запятой, tomcat работает в моей системе.</p><p>это действительно работает.</p>

<p>существует два типа переменных среды первая переменная пользователя, если вы указали путь, она будет работать только для этого конкретного пользователя . вторая - это системная переменная, если вы задаете путь, она используется всеми типами пользователей .. в моей системе я установил java\_home в системную переменную, она не работала, затем я установил путь в пользовательская переменная, она работает ..... так что попробуйте оба типа переменных среды ... </p>

<p>для запуска tomcat8 вам нужно определить jre\_home в переменной env. </p><p>java\_home один не будет делать, даже если правильно установлен. </p><pre><code>jre\_home = c:\program files\java\jdk1.8.0\_77\jre </code></pre><p>вы должны выбрать jre, который находится внутри sdk, то есть один с вашей установкой jdk (sdk) . другими словами, ваш java\_home +\jre</p><p>при компиляции jdk требуется поддержка jsp, для компиляции сервлетов, которые генерируются из файлов * .jsp. в противном случае для запуска jre необходимо. поэтому, когда вы разрабатываете, вам нужен java\_home, а при развертывании вам нужен jre\_home. </p>

<p>также убедитесь, что у вас есть правильная версия tomcat для типа процессора. я установил 64-битный tomcat на 32-битный o/s, но он давал мне исключение java\_home, когда это совсем не так.</p>