Как установить стандартную установку/время выполнения Java (Windows)?

Я в ситуации, когда я установил JDK, но я не могу запускать апплеты в браузерах (возможно, я не установил JRE).

Однако, когда я устанавливаю JRE, он сжимает мой JDK в качестве среды выполнения по умолчанию. Это сильно нарушает все (eclipse, ant) - поскольку для них требуется сервер JVM.

В наши дни нет системного свойства JAVA_HOME - кажется, что он использует некоторые магии реестра (установка системного пути тоже бесполезна). Раньше я только что удалил JRE после того, как использовал его для восстановления JDK. На этот раз я хочу исправить это правильно.

Это также проявляется в jre autoupdater - когда-то, у меня была рабочая настройка с JDK и JRE, но она обновлялась и все испортила.

Ответ 1

Это немного боль в Windows. Вот что я делаю.

Установите последнюю версию Sun JDK, например. 6u11, в пути, как c:\install\jdk\sun\6u11, затем установите установщику общедоступную JRE в место по умолчанию (c:\program files\blah). Это позволит настроить стандартную JRE для большинства вещей.

Установите старые JDK как необходимо, например 5u18 в c:\install\jdk\sun\5u18, но не устанавливайте общедоступные JRE.

При разработке у меня есть небольшой пакетный файл, который я использую для установки командной строки для каждой версии JDK. По существу просто установите JAVA_HOME=c:\jdk\sun\JDK_DESIRED, а затем установите PATH=%JAVA_HOME%\bin;%PATH%. Это поместит желаемый JDK первым в путь, и любые вторичные инструменты, такие как Ant или Maven, могут использовать переменную JAVA_HOME.

Путь важен, потому что большинство открытых JRE-установок помещают связанный исполняемый файл в c:\WINDOWS\System32\java.exe, который обычно переопределяет большинство других параметров.

Ответ 2

Я исправил поведение моего ярлыка запуска eclipse в диалоговом окне свойств

из

"E:\Program Files\eclipse\eclipse.exe"

к

"E:\Program Files\eclipse\eclipse.exe" -vm "E:\Program Files\Java\jdk1.6.0_30\bin"

как описано в документации Eclipse

Это только патч, поскольку он зависит от ярлыка, чтобы исправить ситуацию...

Альтернативой является постоянная установка параметра в файле инициализации eclipse.

Ответ 3

У меня была эта проблема (Java 1.8 против Java 9 на Windows 7), и мои выводы:

короткая версия

по умолчанию кажется (из-за ввода Path)

c:\ProgramData\Oracle\Java\javapath\java -version

выберите нужную версию (тест, используйте вкладку, завершающую в cmd, не уверен, что представляют эти цифры), у меня было 2 варианта, более подробную информацию см. в более подробной версии

c:\ProgramData\Oracle\Java\javapath_target_[tab]

удалите соединение/ссылку и ссылку на вашу версию (тот, который заканчивается 181743567 в моем случае для Java 8)

rmdir javapath
mklink /D javapath javapath_target_181743567

более длинная версия:

Переустановите Java 1.8 после того, как Java 9 не работает. Последовательность установок была jdk1.8.0_74, jdk-9.0.4 и попыталась сделать Java 8 по умолчанию с помощью jdk1.8.0_162...

После установки jdk1.8.0_162 у меня все еще есть

java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

То, что я вижу в пути,

Path=...;C:\ProgramData\Oracle\Java\javapath;...

Итак, я проверил, что это такое, и я обнаружил, что это соединение (ссылка)

c:\ProgramData\Oracle\Java>dir
 Volume in drive C is OSDisk
 Volume Serial Number is DA2F-C2CC

 Directory of c:\ProgramData\Oracle\Java

2018-02-07  17:06    <DIR>          .
2018-02-07  17:06    <DIR>          ..
2018-02-08  17:08    <DIR>          .oracle_jre_usage
2017-08-22  11:04    <DIR>          installcache
2018-02-08  17:08    <DIR>          installcache_x64
2018-02-07  17:06    <JUNCTION>     javapath [C:\ProgramData\Oracle\Java\javapath_target_185258831]
2018-02-07  17:06    <DIR>          javapath_target_181743567
2018-02-07  17:06    <DIR>          javapath_target_185258831

Эти хэши не звонят, но когда я проверил

c:\ProgramData\Oracle\Java\javapath_target_181743567>.\java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

c:\ProgramData\Oracle\Java\javapath_target_185258831>.\java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

чтобы снова включить Java 8, мне пришлось удалить ссылку, как описано здесь

rmdir javapath

и воссоздать с Java я хотел

mklink /D javapath javapath_target_181743567

испытываться:

c:\ProgramData\Oracle\Java>java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

Ответ 4

Я просто устанавливаю все версии JDK, которые мне нужны, и последняя установленная становится стандартной, поэтому я просто переустанавливаю ту, которая мне нужна по умолчанию, если это необходимо.

Ответ 5

У меня есть несколько JDK (1.4, 1.5, 1.6), установленных в C:\Java со своими JRE. Затем я разрешаю Sun обновлять общедоступную JRE в C:\Program Files\Java В последнее время наблюдается улучшение, установка в jre6. Раньше была другая папка для новой версии (1.5.0_4, 1.5.0_5 и т.д.), Которая занимала много места

Ответ 6

После многих попыток я нашел подход перехода более удобным. Это очень похоже на то, как эта проблема решается в Linux.

В основном он состоит из ссылки между c:\tools\java\default и фактической версией java, которую вы хотите использовать по умолчанию в своей системе.


Как установить:

  • Загрузите соединение и не забудьте поместить его в свой PATH переменная среды
  • Установите среду таким образом:   - PATH, указывая на ТОЛЬКО на этот jre c:\tools\java\default\bin  - JAVA_HOME, указывающий на `c:\tools\java\default
  • Сохраняйте все свои jre-s в одной папке (если вы делаете это в своей папке Program Plles, вы можете столкнуться с некоторыми
    • C:\tools\Java\JRE_1.6
    • C:\tools\Java\JRE_1.7
    • C:\tools\Java\JRE_1.8
  • Откройте командную строку и cd до C:\tools\Java\
  • Выполнить junction default JRE_1.6

Это создаст соединение (которое более или менее похоже на символическую ссылку в linux) между c:\tools\java\default и C:\tools\Java\JRE_1.6

Таким образом, вы всегда будете иметь java по умолчанию в c:\tools\java\default.

Если вам нужно изменить java-версию по умолчанию на версию 1.8, вам просто нужно выполнить

junction -d default
junction default JRE_1.8 

Затем вы можете иметь пакетные файлы для этого без командной строки, например set_jdk8.bat set_jdk7.bat

Как предложено из @СӏаџԁеМаятіи

РЕДАКТИРОВАТЬ: Из окна Vista вы можете использовать mklink /J default JRE_1.8