- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我下载了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 的支持(顺便说一下,安装程序在其 ADVAPI32.DLL
中没有使用 RegDeleteKeyExA
),如 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
),也解压它,
使用 JDK8 中的 unpack200
将所有 .pack 文件解包为 .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 根目录的命令行)解压所有文件:
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\
(文件放置在安装程序目录树中有点不同) - 但我强烈建议不要这样做。
另见:How can I get the latest JRE / JDK as a zip file rather than EXE or MSI installer?、JRE 1.7 - java version - returns: java/lang/NoClassDefFoundError: java/lang/Object
关于java - 在 Windows XP 上安装 JDK8 - advapi32.dll 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20965564/
我是一名优秀的程序员,十分优秀!