установка JDK8 на Windows XP-advapi32.ошибка dll
Я скачал JDK8 построить b121 и при попытке установить я получаю следующую ошибку:
точка входа процедуры RegDeleteKeyExA не может быть расположена в динамической библиотеке ссылок ADVAPI32.dll
операционная система Windows XP, версия 2002 с пакетом обновления 3, 32-разрядная.
4 ответа:
это происходит потому, что Oracle отказался от поддержки Windows XP (которая не имеет
RegDeleteKeyExA
используется установщиком в егоADVAPI32.DLL
кстати) как описано в http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html. Тем не менее, хотя официальная поддержка XP закончилась, двоичные файлы Java по-прежнему (по крайней мере, с Java 8u20 EA b05) совместимы с XP - только установщик не является...из-за этого, решение на самом деле очень легко:
получите 7-zip (или любой другой качественный архиватор), распакуйте дистрибутив .exe вручную, у него есть один .zip-файл внутри него (
tools.zip
), распакуйте его тожеиспользовать
unpack200
из JDK8 распаковать все .упакуйте файлы .jar-файлы (старые распаковки не будут работать должным образом);JAVA_HOME
переменная окружения должна быть установлена в корень распаковки Java, например "C:\Program Files\Java\jdk8" - вы можете указать его неявно например,SET JAVA_HOME=C:\Program Files\Java\jdk8
распакуйте все файлы с помощью одной команды (в командный файл):
FOR /R %%f IN (*.pack) DO "%JAVA_HOME%\bin\unpack200.exe" -r -v "%%f" "%%~pf%%~nf.jar"
распаковать все файлы с помощью одной команды (командной строки из JRE root):
FOR /R %f IN (*.pack) DO "bin\unpack200.exe" -r -v "%f" "%~pf%~nf.jar"
распакуйте вручную найти файлы и распаковывать их один за другим:
%JAVA_HOME%\bin\unpack200 -r packname.pack packname.jar
здесь
packname
к примеруrt
укажите инструмент, который вы хотите используйте (например, Netbeans) для
%JAVA_HOME%
и вы хорошо идти.Примечание: Вы, вероятно, не должны делать это только для использования Java 8 в вашем веб-браузере или по любой аналогичной причине (установка JRE 8 приходит на ум); недостатки безопасности в ранних обновлениях основных версий Java являются (mind me) легендарный, и добавление к этому никакой реальной поддержки ни XP, ни Java 8 на XP только ухудшает ситуацию. Не говоря уже о том, что ты обычно не нужна Java в вашем браузере (см. например http://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/ - эта тема уже освещена на многих страницах, просто Google, Если вам нужна дополнительная информация). В любом случае, AFAIK единственное, что требуется для применения этой процедуры к JRE, - это изменить некоторые из указанных выше путей от \bin\ до \lib\ (размещение файла в дереве каталогов установщика немного отличается) - но я сильно советую делать оно.
Читайте также: как я могу получить последнюю версию JRE / JDK в виде zip-файла, а не установщика EXE или MSI?,среда JRE 1.7 возвращает: Ява/Ланг/ошибке типа noclassdeffounderror: Java, с/Ланг/объекта
существует также альтернативное решение для тех, кто не боится использовать шестнадцатеричные Редакторы (например, XVI32) [благодаря Тревор этого]: в распаковывается1 исполняемый файл установщика (
jdk-8uXX-windows-i586.exe
в случае JDK) просто замените все вхожденияRegDeleteKeyExA
(имя API найдено в "new"ADVAPI32.DLL
) СRegDeleteKeyA
(имя устаревшего API), а затем два шестнадцатеричных '00 (для сохранения границ заполнения/сегментации). Установщик будет жаловаться на неподдерживаемые окна версия, но все же будет работать.для справки, необработанные шестнадцатеричные строки будут:
52 65 67 44 65 6C 65 74 65 4B 65 79 45 78 41
заменить
52 65 67 44 65 6C 65 74 65 4B 65 79 41 00 00
Примечание: эта процедура применяется как к автономному (автономному), так и к онлайн-пакету (загрузчику).
1: некоторые новые версии установщика упакованы с UPX - вам нужно будет сначала распаковать их, иначе вы просто не сможете найти требуемую шестнадцатеричную строку
Oracle объявила об исправлении ошибки установки Windows XP
я добавляю этот ответ, так как Oracle решил исправить установку Windows XP. По состоянию на выпуск JRE 8u25 в 10/15/2014 Исправлена ошибка, которая препятствовала установке Windows XP.
однако это не означает, что Oracle продолжает поддерживать Windows XP. Они не гарантируют, что текущие и будущие выпуски JRE8 будут совместимы с Windows XP. Это выглядит как будто это бег на свой страх и риск.
посмотреть сообщение в блоге Oracle здесь.
вы можете узнать JRE 8u25(или последняя версия) прямо с сайта загрузки Oracle.
С JRE 8 на XP есть еще один способ-использовать MSI для развертывания пакета.
- установите JRE 8 x86 на ПК с поддерживаемой ОС
- копировать c:\Users[пользователь]\AppData\LocalLow\Sun\Java\jre1.8.0\jre1.8.0.msi и Data1.кэб на ПК XP и запустить jre1.8.0.msi
или (бесшумный способ, используемый в пакетном файле и т. д..)
for %%I in ("*.msi") do if exist "%%I" msiexec.exe /i %%I /qn EULA=0 SKIPLICENSE=1 PROG=0 ENDDIALOG=0