Java не видит jdk
Недавно прекратили поддерживать 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 "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.
Каждый файл *.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/ |