当前位置: 首页 > 知识库问答 >
问题:

在Windows XP上安装JDK8-advapi32.dll错误

宫俊才
2023-03-14

我下载了JDK8 build b121,在尝试安装时出现以下错误:

在动态链接库ADVAPI32中找不到过程入口点RegDeleteKeyExA。dll

操作系统是Windows XP,版本2002 Service Pack 3,32位。

共有3个答案

濮阳原
2023-03-14

Oracle已决定修复Windows XP的安装。自2014年10月15日发布JRE 8u25以来,安装程序的代码已经更改,因此可以再次在Windows XP上安装。

然而,这并不意味着甲骨文继续支持视窗操作系统。他们不保证JRE8的当前和未来版本与视窗操作系统兼容。看起来这是一件自负风险的事情。

请参阅此处的Oracle博客文章。

您可以直接从Oracle下载站点获得最新的JRE8。

郑锋
2023-03-14

对于那些不害怕使用十六进制编辑器(例如XVI32)的人来说,还有一种替代解决方案[感谢Trevor的帮助]:在未打包的安装程序可执行文件(jdk-8uXX-windows-i586.exe,如果是jdk)中,只需将所有出现的RegDeleteKeyExA(在“new”ADVAPI32.DLL中找到的API名称)替换为RegDeleteKeyExA(传统API名称),后跟两个十六进制'00(以保留填充/分段边界)。安装程序会抱怨不支持的Windows版本,但仍然可以工作。

作为参考,原始十六进制字符串将为:

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

注意:此过程适用于脱机(独立)和联机(下载)软件包。

一些较新的安装程序版本附带了UPX—您需要先将其解包,否则您将无法找到所需的十六进制字符串

濮升
2023-03-14

发生这种情况是因为Oracle放弃了对Windows XP的支持(顺便说一下,安装程序在其ADVAPI32. DLL中没有使用RegDeleteKeyExA),如http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html.然而,虽然对XP的官方支持已经结束,但Java二进制文件仍然(截至Java8u20 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

    将您要使用的工具(例如Netbean)指向%JAVA_HOME%,您就可以开始了。

    注意:你可能不应该这样做只是为了在你的网络浏览器中使用Java8或任何类似的原因(我想到了安装JRE 8);主要Java版本版本的早期更新中的安全漏洞是传说中的(请注意),除此之外,XP上没有对XP或Java8的真正支持只会让事情变得更糟。更不用说你通常不需要在浏览器中Java(参见例如http://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/-这个主题已经在许多页面上介绍过了,如果你需要更多信息,只需谷歌一下)。无论如何,AFAIK将此过程应用于JRE所需的唯一事情是将上面指定的一些路径从\bin\更改为\lib\(安装程序目录树中的文件放置有点不同)-但我强烈建议不要这样做。

    另请参阅:如何将最新的JRE/JDK作为zip文件而不是EXE或MSI安装程序?,JRE 1.7-java版本-返回:java/lang/NoClassDefFoundError:java/lang/Object

  •  类似资料:
    • 问题内容: 我下载了JDK8 build b121,尝试安装时出现以下错误: 操作系统是Windows XP版本2002 Service Pack 3(32位)。 问题答案: 发生这种情况是因为Oracle 如http://mail.openjdk.java.net/pipermail/openjfx- dev/2013-July/中 所述放弃了对Windows XP的支持(顺便说一下安装程序尚未

    • HTTP请求已发送,正在等待响应...404找不到2018-07-18 14:49:48错误404:找不到。

    • 我尝试在虚拟机上安装hbase,但没有成功。我关注这篇文章:https://hbase.apache.org/book.html#quickstart. 我的步骤是: 1。安装CentOS 7最小值。 2。下载hbase。 3。下载并安装Java8。 4。设置JAVA_HOME变量的值: /usr/java/jdk1.8.0_60/jre 5。编辑conf/hbase-site.xml,使用以下文

    • 我已经在Fedora 28的Rstudio 1.1.4版上看到了这个RMySQL安装错误,但我没有这个问题。 我正在使用 R CMD安装 /home/Trina/Downloads/RMySQL_0.10.14.tar.gz 我得到了: 安装到库“/home/Trina/R/x86_64-redhat-linux-gnu-library/3.5” 我在使用install时也面临同样的问题。Rstu

    • 试图让php/imagick在运行OS 10.15的mac上运行。3(Catalina)使用brew。我安装了Php(7.4.3)我安装了imagemagic(7.0.9-23),当我pecl安装imagick时,我得到: 文件夹存在且为空且具有权限 加载文件不会失败,因为该示例不会使安装失败。消息听起来好像无法读取源代码,但我不确定。有人有什么想法吗?

    • 当我尝试在ubuntu上安装Yeoman时,我得到了以下错误。 编辑 尝试MortezaLSC的解决方案后-我得到以下错误