I downloaded JDK8 build b121 and while trying to install I'm getting the following error:
the procedure entry point RegDeleteKeyExA could not be located in the dynamic link library ADVAPI32.dll
The operating system is Windows XP, Version 2002 Service Pack 3, 32-bit.
This question is related to
java
dll
java-8
windows-xp
Oracle has decided to fix Windows XP installation. As of the JRE 8u25 release in 10/15/2014 the code of the installer has been changes so that installation on Windows XP is again possible.
However, this does not mean that Oracle is continuing to support Windows XP. They make no guarantee about current and future releases of JRE8 being compatible with Windows XP. It looks like it's a run at your own risk kind of thing.
See the Oracle blog post here.
You can get the latest JRE8 right off the Oracle downloads site.
With JRE 8 on XP there is another way - to use MSI to deploy package.
or (silent way, usable in batch file etc..)
for %%I in ("*.msi") do if exist "%%I" msiexec.exe /i %%I /qn EULA=0 SKIPLICENSE=1 PROG=0 ENDDIALOG=0
There is also an alternate solution for those who aren't afraid of using hex editors (e.g. XVI32) [thanks to Trevor for this]: in the unpacked 1 installer executable (jdk-8uXX-windows-i586.exe
in case of JDK) simply replace all occurrences of RegDeleteKeyExA
(the name of API found in "new" ADVAPI32.DLL
) with RegDeleteKeyA
(legacy API name), followed by two hex '00's (to preserve padding/segmentation boundaries). The installer will complain about unsupported Windows version, but will work nevertheless.
For reference, the raw hex strings will be:
52 65 67 44 65 6C 65 74 65 4B 65 79 45 78 41
replaced with
52 65 67 44 65 6C 65 74 65 4B 65 79 41 00 00
Note: this procedure applies to both offline (standalone) and online (downloader) package.
1: some newer installer versions are packed with UPX - you'd need to unpack them first, otherwise you simply won't be able to find the hex string required
Source: Stackoverflow.com