Установка JDK (Java) вручную Печать
Добавил(а) microsin   

Недавно прекратили поддерживать Windows XP, и все чаще попадаются грабли, связанные с потерей совместимости. Сегодня столкнулся с проблемой установки новой версии Java SE 1.8.0_05 (установочный пакет jdk-8u5-windows-i586.exe). Инсталлятор оказался несовместимым с 32-битной Windows XP SP3, и выдавал ошибку: "procedure entry point RegDeleteKeyExA could not be located in the dynamic link library ADVAPI32.dll". В переводе на русский язык "точка входа в процедуру RegDeleteKeyExA не найдена в DLL ADVAPI32.dll". В этой статье описан пошаговый процесс ручной, без инсталлятора, установки Java, если по какой-то причине она у Вас не устанавливается.

[Какая текущая версия JDK/Java?]

Иногда полезно узнать, какая версия JDK (Java) сейчас установлена на компьютере. Для этого откройте консоль (запустите интерпретатор CMD) и введите команду:

java -version

В результате будет выведено что-то наподобие:

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b02)
Java HotSpot(TM) Client VM (build 25.5-b02, mixed mode)

Примечание: когда Java установлена, то её исполняемый файл находится в путях запуска. Это либо каталог %Windows%\system32, либо каталог, указанный через переменную Path, например c:\Program Files\Java\jdk1.7.0_45\bin.

[Процесс ручной установки Java (JDK)]

1. Сначала удалите старую версию Java. Это можно сделать через Панель управления -> Установка и удаление программ. Найдите в списке установленных программ все программы, которые начинаются с "Java", и удалите их. После успешного удаления должна перестать выполняться команда java -version, и должны перестать запускаться программы, которые написаны на Java (например, ADT или Eclipse).

2. Закачайте новую версию Java с сайта Oracle [1]. Это будет исполняемый файл наподобие jdk-8u5-windows-i586.exe. Обычно этот файл просто запускают, и он берет всю работу по инсталляции на себя. Если это так, и у Вас процесс инсталляции прошел без ошибок, то дальше можете не читать. Если же нет, и автоматическая инсталляция невозможна (например, Вы получаете ошибку "RegDeleteKeyExA не найдена в DLL ADVAPI32.dll"), то придется немного поработать, чтобы установить Java.

3. Запустите бесплатный архиватор 7-zip, и откройте им файл jdk-8u5-windows-i586.exe. В этом файле будет находиться файл наподобие tools.zip, распакуйте его в любую временную папку на диске.

4. Распакуйте содержимое файла tools.zip в папку наподобие c:\Program Files\Java\jdk1.8.5\. Здесь jdk1.8.5 просто произвольное имя, отражающее версию скачанного JDK. В результате должна получиться примерно такая структура папок:

c:\Program Files\Java\jdk1.8.5>dir
 Том в устройстве C не имеет метки.
 Серийный номер тома: 7CCB-BDB0
 Содержимое папки c:\Program Files\Java\jdk1.8.5
05.05.2014  22:54    < DIR >          .
05.05.2014  22:54    < DIR >          ..
05.05.2014  20:48    < DIR >          bin
05.05.2014  20:48    < DIR >          db
05.05.2014  20:48    < DIR >          include
18.03.2014  03:14           4 673 034 javafx-src.zip
05.05.2014  20:48    < DIR >          jre
05.05.2014  21:37    < DIR >          lib
18.03.2014  03:14                  40 LICENSE
18.03.2014  03:14                 159 README.html
18.03.2014  03:15                 526 release
18.03.2014  03:14             123 324 THIRDPARTYLICENSEREADME-JAVAFX.txt
18.03.2014  03:14             178 445 THIRDPARTYLICENSEREADME.txt
               6 файлов        4 975 528 байт
               7 папок    706 576 891 904 байт свободно
c:\Program Files\Java\jdk1.8.5>

5. Добавьте в переменную окружения %Path% путь c:\Program Files\Java\jdk1.8.5\bin.

6. Добавьте (или измените) переменную окружения %JAVA_HOME%. Она должна указывать на новое положение папки bin:

JAVA_HOME=c:\Program Files\Java\jdk1.8.5

Перелогиньтесь, чтобы изменения в переменных окружения вступили в силу.

В переменной окружения PATH (в командных файлах и в строке интерпретатора cmd для составления путей на неё ссылаются как на %Path%) хранятся пути поиска исполняемых файлов. Это нужно для того, чтобы не надо было вводить длинную строку пути до исполняемого файла, в нашем случае это java.exe и другие утилиты JDK. Т. е. если в переменной Path прописан путь до java.exe, то можно не утруждать себя вводом полного пути до java.exe, операционная система Windows будет знать, где искать исполняемый файл.

Все переменные окружения, в том числе и Path, могут быть просмотрены, изменены, удалены и добавлены командой SET. В переменной Path может быть прописано множество путей. Каждая запись пути отделяется от другой точкой с запятой. Вот например, как можно просмотреть содержимое переменной окружения Path:

c:\>SET PATH
Path=C:\Program Files\PC Connectivity Solution\;c:\Program Files\Atmel\AVR Tools
\AVR Toolchain\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Xi
linx\11.1\ChipScope\bin\nt;C:\Xilinx\11.1\common\bin\nt;C:\Xilinx\11.1\common\li
b\nt;C:\Xilinx\11.1\EDK\bin\nt;C:\Xilinx\11.1\EDK\lib\nt;C:\Xilinx\11.1\PlanAhea
d\bin;C:\Xilinx\11.1\ISE\bin\nt;C:\Xilinx\11.1\ISE\lib\nt;c:\WinAVR-20100110\bin
;c:\WinAVR-20100110\utils\bin;c:\devkitPro\msys\bin;C:\Program Files\ATI Technol
ogies\ATI.ACE\Core-Static;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program
Files\TortoiseHg\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\IVI Foundati
on\IVI\bin;C:\Program Files\IVI Foundation\VISA\WinNT\Bin\;C:\PROGRA~1\IVIFOU~1\
VISA\WinNT\Bin;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\Microsof
t SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\
;C:\Program Files\OpenVPN\bin;c:\Program Files\Android\apache-ant-1.9.3\bin;c:\P
rogram Files\Android\android-studio\sdk\tools;c:\Program Files\Android\android-s
tudio\sdk\platform-tools;c:\android-ndk-r9c;c:\Program Files\Java\jdk8u5\bin;C:\
Program Files\TortoiseGit\bin;C:\Program Files\IVI Foundation\VISA\WinNT\Bin;C:\
Program Files\ATMEL Corporation\sam-ba_2.11\drv\;C:\Program Files\ATMEL Corporat
ion\sam-ba_2.11;C:\Program Files\ATMEL\FLIP 2.4.6\bin;C:\Program Files\Nmap;c:\M
inGW\bin;C:\Program Files\Atmel\Flip 3.4.7\bin;c:\Program Files\GPAC;C:\Program
Files\Common Files\Ahead\Lib\;C:\Program Files\Common Files\Ahead\Lib\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1

Однако новичкам намного проще использовать для редактирования переменной окружения Path инструмент Пуск -> Панель управления -> Система -> закладка Дополнительно -> кнопка внизу Переменные среды. Откроется окно, в котором можно просмотреть (и отредактировать) как настройку Path для текущего пользователя (в верхней части окна "Переменные среды пользователя"), так и настройку Path для всей системы (в нижней части окна "Системные переменные", эта настройка влияет на всех пользователей). Я советую вносить изменения в "Системные переменные".

7. Найдите в папке jdk1.8.5 все файлы с расширением *.pack и распакуйте их с помощью распаковщика unpack200.exe (он находится в папке c:\Program Files\Java\jdk1.8.5\bin), чтобы получить соответствующие файлы *.jar. Все файлы с расширением *.pack можно найти с помощью финдера Windows (вызывается по кнопке F3), или с помощью Total Commander.

Java-pack-search

Каждый файл *.pack можно распаковать командой наподобие (на примере файла rt.pack):

"%JAVA_HOME%\bin\unpack200" -r rt.pack rt.jar

Примечание: полностью распакованные файлы - всю структуру каталогов, которую достаточно положить в c:\Program Files\Java\, останется только настроить %Path% и %JAVA_HOME% (по шагам 5 и 6) - можно скачать в архиве [2].

На этом установка Java завершена, команда java -version должна нормально отрабатывать из любого каталога.

C:\>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Client VM (build 25.5-b02, mixed mode)

Примечание: получается, что на одном компьютере может быть одновременно установлено любое количество разных версий Java. Какая версия в данный момент активна, будет определяться исключительно значениями пути в переменной %Path% до каталога bin, и значением переменной окружения %JAVA_HOME% (см. шаги 5 и 6).

[Ярлыки для Java]

После того, как Вы вручную установили Java и проверили её работу, можно сделать ярлыки для некоторых часто используемых функций (см. таблицу ниже). Путь до javacpl.exe нужно указать реально существующий (в ту папку, куда вы копировали файлы Java).

Ярлык Командная строка ярлыка
About Java "c:\Program Files\Java\jre1.5.0_11\bin\javacpl.exe" -tab about
Check For Updates "c:\Program Files\Java\jre1.5.0_11\bin\javacpl.exe" -tab update
Configure Java "c:\Program Files\Java\jre1.5.0_11\bin\javacpl.exe"
Get Help http://java.com/help
Visit Java.com http://java.com/

[Ссылки]

1. Java Downloads site:www.oracle.com.
2. 140505jdk1.8.0.zip - полностью обработанная структура папок 32-битного JDK (*.pack уже распакованы, осталось папку из архива положить в c:\Program Files\Java\).
3160228jdk-8u73.zip - полностью обработанная структура папок 64-битного JDK (*.pack уже распакованы, осталось папку из архива положить в c:\Program Files\Java\).