在 Windows XP 上安装 JDK8 - advapi32.dll 错误
我下载了JDK8内部版本b121,在尝试安装时,我收到以下错误:
the procedure entry point RegDeleteKeyExA could not be located in the dynamic link library ADVAPI32.dll
操作系统是 Windows XP,版本 2002 Service Pack 3,32 位。
我下载了JDK8内部版本b121,在尝试安装时,我收到以下错误:
the procedure entry point RegDeleteKeyExA could not be located in the dynamic link library ADVAPI32.dll
操作系统是 Windows XP,版本 2002 Service Pack 3,32 位。
发生这种情况是因为Oracle放弃了对Windows XP的支持(顺便说一句,安装程序没有使用它),如 http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html 中所述。然而,虽然对XP的官方支持已经结束,但Java二进制文件仍然(至少从Java 8u20 EA b05开始)与XP兼容 - 只有安装程序不是...RegDeleteKeyExA
ADVAPI32.DLL
因此,解决方案实际上非常简单:
获取7-Zip(或任何其他好的解压缩程序),手动解压缩分发.exe,其中包含一个.zip文件(),也将其解压缩,tools.zip
使用从JDK8解压缩所有.pack文件以.jar文件(较旧的解压缩包将无法正常工作); 环境变量应设置为 Java 解包根目录,例如 “C:\Program Files\Java\jdk8” - 您可以通过以下方式隐式指定它:unpack200
JAVA_HOME
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 根目录使用命令行):
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%
注意:您可能不应该仅仅为了在Web浏览器中使用Java 8或任何类似的原因而这样做(想到安装JRE 8);主要Java版本的早期更新中的安全漏洞(请注意)是传奇,并且增加对XP和XP上的Java 8的真正支持只会使事情变得更糟。更不用说您的浏览器中通常不需要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 - java 版本 - 返回: java/lang/NoClassDefFoundError: java/lang/Object
对于那些不怕使用十六进制编辑器(例如XVI32)的人来说,还有另一种解决方案[感谢Trevor为此]:在解压缩的1安装程序可执行文件(在JDK的情况下)中,只需将所有出现的(在“新”中找到的API名称)替换为(旧版API名称),然后是两个十六进制'00(以保留填充/分段边界)。安装程序将抱怨不受支持的Windows版本,但仍然可以正常工作。jdk-8uXX-windows-i586.exe
RegDeleteKeyExA
ADVAPI32.DLL
RegDeleteKeyA
作为参考,原始十六进制字符串将是:
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 - 您需要先解压缩它们,否则您将根本无法找到所需的十六进制字符串