как я могу изменить java runtime version в windows (7)?

<p>как я могу изменить java runtime version в windows.</p><p>я установил java 7 для некоторых тестов, и теперь мне нужна старая java6 в качестве системной настройки по умолчанию, но я не хочу удалять java 7 (она мне нужна для последующих тестов). могу ли я изменить используемый системный <a href="https://en.wikipedia.org/wiki/java\_virtual\_machine">jre</a> на панели управления/вкладка java/jre? я могу изменить/отредактировать/добавить/удалить версию, используемую пользователем, но не используемую системой.</p>

<p>для java <strong>application</strong>, т.е. программ, которые доставляются (обычно) в виде файлов <code>.jar</code> и запускаются с помощью <code>java -jar xxx.jar</code> или с помощью ярлыка, который делает то же самое, jre, который будет запущен, будет первым, найденным в <code>path</code>. </p><p>если вы установили jre или jdk, вероятные места для поиска <code>.exe</code> находятся ниже каталогов, таких как <code>c:\program files\javasoft\jre\x.y.z</code>. однако я обнаружил, что в некоторых установках windows «из коробки» (также?) имеются копии <code>java.exe</code> и <code>javaw.exe</code> в <code>c:\winnt\system32</code> (nt и 2000) или <code>c:\windows\system</code> (windows 95, 98). обычно это довольно старая версия java: 1.3, может быть? вы захотите сделать <code>java -version</code> в командном окне, чтобы убедиться, что у вас не установлена устаревшая версия java.</p><p>конечно, вы можете переопределить параметр path или даже обойтись без него, явно указав путь к java.exe/javaw.exe в командной строке или определении ярлыка.</p><hr><p>если вы запускаете <strong>applets</strong> из браузера или, возможно, также <strong>java web start приложения</strong> (они выглядят как приложения, поскольку у них есть собственное окно, но вы запускаете их из браузера), выбор jre определяется набором настроек реестра:</p><pre><code>key: hkey\_local\_machine\software\javasoft\java runtime environment name: currentversion value: (e.g.) 1.3 </code></pre><p>дополнительные ключи реестра создаются с использованием этой схемы:</p><pre><code>(e.g.) hkey\_local\_machine\software\javasoft\java runtime environment\1.3 hkey\_local\_machine\software\javasoft\java runtime environment\1.3.1 </code></pre><p>то есть один для основной и один номер для вспомогательной версии. каждый из этих ключей имеет следующие значения (показаны примеры):</p><pre><code>javahome : c:\program files\javasoft\jre\1.3.1 runtimelib : c:\program files\javasoft\jre\1.3.1\bin\hotspot\jvm.dll microversion: 1 </code></pre><p>... и ваш браузер обратится к этим настройкам, чтобы определить, какую jre запустить.</p><p>поскольку версии java меняются довольно часто, теперь существует «мастер» под названием «панель управления java» для ручного переключения версии java вашего браузера. это работает для ie, firefox и, возможно, для других, таких как opera и chrome: это приложение «java» в windows <code>system settings</code>. вы можете выбрать любую из установленных jre. я считаю, что мастер возиться с этими записями реестра.</p><p>если вы похожи на меня и «удалили» старые версии java, просто уничтожив каталоги, вы также найдете этих «призраков» среди выбора; поэтому убедитесь, что выбранная вами jre соответствует исправной установке java!</p><hr><p>некоторые другие ответы рекомендуют установить переменную <em>environment</em> <code>java\_home</code>. это пока что устаревший совет. sun пришла к выводу, что вокруг java 2 этот параметр среды </p><ol> <li>ненадежный, так как пользователи часто устанавливают его неправильно, и </li> <li>в этом нет необходимости, так как для среды выполнения достаточно просто найти каталоги библиотеки java, зная, что они находятся в фиксированном пути относительно пути, из которого был запущен java.exe или javaw.exe. </li> </ol><p>вряд ли осталось какое-либо современное программное обеспечение java, которое нуждается или учитывает переменную среды <code>java\_home</code>.</p><hr><p>дополнительная информация: </p><ul> <li> <a href="http://java.sun.com/j2se/1.3/runtime\_win32.html">http://java.sun.com/j2se/1.3/runtime\_win32.html</a> </li> <li> <a href="http://www.rgagnon.com/javadetails/java-0604.html">http://www.rgagnon.com/javadetails/java-0604.html</a> </li> </ul><p>... и немного полезной информации о поддержке нескольких версий:</p><ul> <li> <a href="http://www.rgagnon.com/javadetails/java-0604.html">http://www.rgagnon.com/javadetails/java-0604.html</a> </li> </ul>

<p>я использую для работы на unix-подобных машинах, но недавно мне пришлось немного поработать с java на машине с windows 7. у меня была эта проблема, и это я ее решил. это сработало правильно для меня, поэтому я надеюсь, что он может быть использован для тех, кто может иметь эту проблему в будущем.</p><p>эти шаги описаны с учетом установки java по умолчанию на диске c. вы должны изменить то, что необходимо, если ваша установка не является установкой по умолчанию.</p><h1>изменить java по умолчанию vm в windows 7</h1><p>предположим, мы установили java 8, но по какой-то причине мы хотим сохранить java 7.</p><p>1- запустите cmd как администратор</p><p>2- перейти к <code>c:\programdata\oracle\java</code></p><p>3- переименуйте текущий каталог<strong> javapath </strong>to<strong> javapath\_ <version\_it\_refers\_to> </strong>. например: <code>rename javapath javapath\_1.8</code></p><p>4- создайте каталог<strong> javapath\_ <version\_you\_want\_by\_default> </strong>. например: <code>mkdir javapath\_1.7</code></p><p>5- перейдите в него и создайте следующие ссылки:</p><pre><code>cd javapath\_1.7 mklink java.exe "c:\program files\java\jre7\bin\java.exe" mklink javaw.exe "c:\program files\java\jre7\bin\javaw.exe" mklink javaws.exe "c:\program files\java\jre7\bin\javaws.exe" </code></pre><p>6- cdd и создайте ссылку на каталог<strong> javapath </strong>, указывающую на желаемый javapath. например: <code>mklink /d javapath javapath\_1.7</code></p><p>7- откройте реестр и измените ключ<strong> hkey\_local\_machine\software\javasoft\java runtime environment\currentversion </strong>, чтобы получить значение 1,7</p><p>на этом этапе, если вы выполните <code>java -version</code>, вы должны увидеть, что вы используете java версии 1.7:</p><pre><code>java version "1.7.0\_71" java(tm) se runtime environment (build 1.7.0\_71-b14) java hotspot(tm) 64-bit server vm (build 24.71-b01, mixed mode) </code></pre><p>8. наконец, неплохо создать переменную окружения java\_home. для этого я создаю ссылку на каталог с именем currentversion в c:\program files\java, указывающую на интересующую меня версию java. например:</p><pre><code>cd c:\program files\java\ mklink /d currentversion .\jdk1.7.0\_71 </code></pre><p>9- и как только это будет сделано:</p><ul> <li>щелкните правой кнопкой мыши мой компьютер и выберите свойства.</li> <li>на вкладке «дополнительно» выберите «переменные среды», а затем отредактируйте/создайте java\_home, чтобы указать, где находится программное обеспечение jdk, в этом случае c:\program files\java\currentversion</li> </ul>

<p>начиная с java 1.6, java.exe устанавливается в% windir%\system32, который поддерживает параметр командной строки «-version». вы можете использовать это, чтобы выбрать конкретную версию для запуска, например:</p><pre><code>java -version:1.7 -jar [path to jar file] </code></pre><p>запустит jar-приложение в java 1.7, если оно установлено.</p><p>см. документацию oracle здесь: <a href="http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html">http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html</a> </p>

<p>однажды я обновил свою версию java до 8, как предложено браузером. однако я решил удалить предыдущую версию java 6, которую я использовал для кодирования своих проектов. когда я ввел команду в "java -version" в<em> cmd </em>он показал 1.8, и я не смог запустить eclipse ide, запущенный на java 1.6. </p><p>когда я установил обновление java 8 для браузера, оно изменило системную переменную «path», добавив «c:\programdata\oracle\java\javapath» в начало. недавно добавленный путь указывал на java vesion 8. поэтому я удалил этот путь из системной переменной «path», и все работало нормально. :)</p>

<p>зайдите в панель управления -> java здесь вы можете выбрать активную версию</p>

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

<p>если вы используете windows 10 или windows server 2012, шаги для изменения версии среды выполнения java:</p><ol> <li>откройте regedit, используя «run»</li> <li>перейдите к hkey\_local\_machine -> программное обеспечение -> javasoft -> java runtime environment</li> <li>здесь вы увидите все версии java, установленные на вашем компьютере. у меня установлено несколько версий java 1.8, поэтому здесь отображаются папки 1.8, 1.8.0\_162 и 1.8.0\_171.</li> <li>щелкните папку «1.8», затем дважды щелкните ключи javahome и runtimelib. измените номер версии внутри на ту версию java, на которой вы хотите, чтобы ваш пк работал. например, если значение параметра «c:\program files\java\jre1.8.0\_171» является значением «c:\program files\java\jre1.8.0\_162».</li> <li>затем вы можете проверить изменение версии, набрав «java-версия» в командной строке.</li> </ol>

<p>обновите переменные среды</p><p>убедитесь, что ссылка на java/bin актуальна в «пути»; это может быть автоматическим, если у вас есть java\_home или эквивалентный набор. если установлен java\_home, просто обновите его, чтобы он ссылался на более старую установку jre.</p>