2015-10-06 7 views
0

Я установил Java 8 (jdk-8u60-windows-x64.exe) на машину с несколькими другими версиями.Как установить Java 8 на машине с другими версиями Java

После установки я вижу следующее сообщение

d:\Userprofiles\user>java -version 
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' 
has value '1.8', but '1.7' is required. 
Error: could not find java.dll 
Error: Could not find Java SE Runtime Environment. 

я могу изменить JAVA_HOME на новое место, но это не исправить приведенное выше сообщение.

Когда я редактирую реестр и изменяю 1.8 в ответах на серверный раздел реестра 1.7 У меня снова есть рабочая конфигурация. Но это все еще 1.7.

Изменение JAVA_HOME, похоже, не имеет никакого эффекта. Когда я меняю его на свой новый установленный JDK

d:\Userprofiles\user>java -version 
java version "1.7.0_55" 
Java(TM) SE Runtime Environment (build 1.7.0_55-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) 

d:\Userprofiles\user>echo %JAVA_HOME% 
D:\Program Files\Java\jdk1.8.0_60 

Что нужно сделать, чтобы 1,8 работали на моей машине? JAVA_HOME кажется устаревшим, следует ли изменить реестр? Что делать, чтобы изменить реестр, чтобы получить версию 1.8?

+1

Кто сказал, что 'JAVA_HOME' устарел? Если бы я был вами, я бы удалил _both_ Java 7 и 8, а затем переустановил их с нуля в каталоги _separate_. После этого настройте переменные среды, чтобы выбрать один для запуска. –

+0

Почему вы снова задали тот же вопрос? – Henry

+0

Java никогда не использовал JAVA_HOME. Эта переменная используется несколькими инструментами, такими как Ant, Maven, Gradle, но не самой Java. Вы должны изменить свой PATH, чтобы указать нужный каталог jdk/bin. –

ответ

3

Недостаточно просто ввести значение для %JAVA_HOME% (на самом деле, Java не заботится о том, есть или нет такой переменной окружения).

То, что вы должны сделать, это добавить %JAVA_HOME%/bin каталог в переменную окружения в Path, так что вы получите java.exe, который соответствует версии %JAVA_HOME%, без необходимости писать полный путь к java.exe исполняемого файла, который вы хотите вызвать.

Так, как это сделать:

  • установить значение для %JAVA_HOME% переменной среды
  • добавить %JAVA_HOME%/bin к Path переменной окружения

или просто

  • Append <the-java-home-directory>/bin до Path переменная.

Лично я предпочел бы, чтобы поддерживать значение для JAVA_HOME, так как она необходима инструментов, как Maven, Hadoop и т.д.

+0

Проблема действительно была моей переменной «Путь». 'JAVA_HOME' отсутствовал. – onknows

0

Вы можете иметь столько, сколько JDK устанавливается как вы хотите, и вы не» t даже нуждаются в них в PATH, или для установки JAVA_HOME.

Первый найденный в PATH будет по умолчанию. Не забудьте установить JDK, а не JRE, который всегда поставляется вместе с JDK, т. Е. Отменить третий вариант при установке.

У меня есть Установлен JDK, и я могу запускать все из них, ничего не меняя. Все, что вам нужно сделать, это право исполняемым:

C:\>prog\java32\jdk1.4.2_19\bin\java.exe -version 
java version "1.4.2_19" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04) 
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode) 

C:\>prog\java32\jdk1.5.0_22\bin\java.exe -version 
java version "1.5.0_22" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) 
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode) 

C:\>prog\java32\jdk1.6.0_45\bin\java.exe -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing) 

C:\>prog\java32\jdk1.7.0_79\bin\java.exe -version 
java version "1.7.0_79" 
Java(TM) SE Runtime Environment (build 1.7.0_79-b15) 
Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing) 

C:\>prog\java32\jdk1.8.0_51\bin\java.exe -version 
java version "1.8.0_51" 
Java(TM) SE Runtime Environment (build 1.8.0_51-b16) 
Java HotSpot(TM) Client VM (build 25.51-b03, mixed mode, sharing) 

C:\>prog\java64\jdk1.5.0_22\bin\java.exe -version 
java version "1.5.0_22" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03) 
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode) 

C:\>prog\java64\jdk1.6.0_45\bin\java.exe -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 

C:\>prog\java64\jdk1.7.0_79\bin\java.exe -version 
java version "1.7.0_79" 
Java(TM) SE Runtime Environment (build 1.7.0_79-b15) 
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) 

C:\>prog\java64\jdk1.8.0_51\bin\java.exe -version 
java version "1.8.0_51" 
Java(TM) SE Runtime Environment (build 1.8.0_51-b16) 
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode) 

Это был выход в одной командной строке, без когда-либо настройки PATH.

+0

Любая конкретная причина, по которой вам нужны как 32-битные, так и 64-битные копии? Просто любопытно. – Gimby

+0

@ Gimby Только для тестирования. – Andreas

+1

* «Первый найденный в PATH будет по умолчанию« * - как дополнение к этому, в Windows установка времени выполнения Java выгружает некоторые исполняемые файлы в системной папке Windows, чтобы иметь возможность говорить о «стандартной Java». Это может вызвать некоторую путаницу, если у вас установлено несколько установок Java, поскольку системная папка в пути может конфликтовать с тем, что найдено первым. Именно поэтому я поместил Java, по-моему, по умолчанию на самой передней части Пути, прежде чем все папки Windows даже. – Gimby

Смежные вопросы