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

2024-04-10

我下载了JDK8 https://jdk8.java.net/download.htmlbuild 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 的支持(Windows XP 没有RegDeleteKeyExA由安装程序在其中使用ADVAPI32.DLL顺便说一句)如所述http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html。然而,虽然对 XP 的官方支持已经结束,但 Java 二进制文件仍然(至少从 Java 8u20 EA b05 开始)与 XP 兼容 - 只是安装程序不...

因此,解决方案实际上很简单:

  1. 获取 7-Zip(或任何其他好的解压程序),手动解压发行版 .exe,其中包含一个 .zip 文件(tools.zip),也提取它,

  2. use unpack200从 JDK8 将所有 .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
      

    where packname例如rt

  3. 将您要使用的工具(例如 Netbeans)指向%JAVA_HOME%现在就可以走了。

注意:您可能不应该仅仅为了在 Web 浏览器中使用 Java 8 或出于任何类似原因(例如安装 JRE 8)而这样做;主要 Java 版本发布的早期更新中的安全缺陷是(请注意)传奇的,再加上对 XP 和 XP 上的 Java 8 都没有真正的支持,只会让事情变得更糟。更别说平时的你don't您的浏览器中需要 Java(请参阅http://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/ http://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/- 该主题已经在很多页面上介绍过,如果您需要更多信息,只需 Google 即可)。无论如何,据我所知,将此过程应用于 JRE 所需的唯一操作是将上面指定的一些路径从\bin\ to \lib\(安装程序目录树中的文件放置有点不同) - 但我strongly建议不要这样做。

也可以看看:如何以 zip 文件形式获取最新的 JRE/JDK,而不是 EXE 或 MSI 安装程序? https://stackoverflow.com/questions/1619662/how-can-i-get-the-latest-jre-jdk-as-a-zip-file-rather-than-exe-or-msi-installe, JRE 1.7 - java 版本 - 返回:java/lang/NoClassDefFoundError:java/lang/Object https://stackoverflow.com/questions/11808829/jre-1-7-returns-java-lang-noclassdeffounderror-java-lang-object

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows XP 上安装 JDK8 - advapi32.dll 错误 的相关文章

  • 如何使用 Java 将 HTML 内容转换为 PDF 而不丢失格式?

    我有一些 HTML 内容 包括格式化标签 例如strong 图像等 在我的 Java 代码中 我想将此 HTML 内容转换为 PDF 文档 而不丢失 HTML 格式 有没有办法用 Java 来实现 使用 iText 或任何其他库 I use
  • 以点作为分隔符分割字符串

    我想知道我是否要在一个字符串上分割字符串 正确的方式 我的代码是 String fn filename split return fn 0 我只需要字符串的第一部分 这就是我返回第一项的原因 我问这个是因为我在 API 中注意到 意味着任何
  • 如何在Mac上使用eclipse安装jetty

    我是一个新手 jetty 和 RESTful API 我想使用 Jetty 创建 REST 服务 并希望将嵌入式 jetty 与 eclipse 一起使用 任何人都可以建议我在 Mac OS 中使用 Eclipse 安装 Jetty Jet
  • 空 EntityManager/EJB 注入 MDB

    我有一个消息驱动 bean MDB 部署到 WebLogic 12 1 3 我尝试使用 PersistenceContext 注释将实体管理器注入 MDB 但实体管理器为空 我还尝试注入一个简单的无状态会话 bean 它也是空的 但是 Me
  • 如何屏蔽 Protobuf 中的某些字段

    我找不到一种方法来屏蔽 protobuf 结构中的某些字段 我确实阅读了有关 FieldMaskUtil 的内容并尝试了几个示例 但它似乎做了相反的操作 即复制 FieldMask 中提到的字段 这与我想要的不同 这是示例结构和相应的测试代
  • Hystrix是否可以订阅CircuitBreaker开启事件?

    对于单元测试 我希望能够订阅 Hystrix 事件 特别是在断路器打开或关闭时发生事件 我四处寻找示例 似乎解决方法是利用指标流并监视断路器标志 由于 Hystrix 是基于 RxJava 构建的 我认为应该在某个地方有一个事件订阅接口 在
  • 如何在Gradle中支持多种语言(Java和Scala)的多个项目?

    我正在尝试将过时的 Ant 构建转换为 Gradle 该项目包含约50个Java子项目和10个Scala子项目 Java 项目仅包含 Java Scala 项目仅包含 Scala 每个项目都是由 Java 和 Scala 构建的 这大大减慢
  • 如何使用 Spring MVC 和 Thymeleaf 添加静态文件

    我的问题是如何添加 CSS 和图像文件等静态文件 以便我可以使用它们 我正在使用 Spring MVC 和 Thymeleaf 我查看了有关此主题的各种帖子 但它们对我没有帮助 所以我才来问 根据这些帖子 我将 CSS 和图像文件放在res
  • 如何在命令提示符中检查 JAVA_OPTS 值?

    我们的应用程序部署 JBoss 服务器然后抛出错误 PermGen space 然后在 jboss bat 和配置文件中设置 permgen 变量中的 java OPTS JAVA OPTs 中是否有值 assige 如何检查 如何在命令提
  • MessageDigest MD5 算法未返回我期望的结果

    我脑后的某个东西告诉我 我在这里遗漏了一些明显的东西 我正在将现有的 java 项目与第三方 api 集成 该第三方 api 使用 api 密钥的 md5 哈希进行身份验证 它对我不起作用 在调试过程中我意识到我生成的哈希值与他们提供的示例
  • 在多模块项目中访问绑定适配器

    我有一个多模块项目 其中应用程序模块包含我的绑定适配器 而我的功能模块取决于我的应用程序模块 因为它是动态功能模块 应用程序 包含绑定适配器 gt 动态功能模块 存在布局的地方 我在所有模块中启用了数据绑定和 kapt 我无法成功构建应用程
  • NoSuchMethodError:将 Firebase 与应用程序引擎应用程序集成时

    我试图将 firebase 实时数据库与谷歌应用程序引擎应用程序集成 我在调用时收到此错误 gt DatabaseReference ref FirebaseDatabase gt getInstance gt getReference t
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 如何在 Java 中创建要打印到 JFrame 的 JLabels 数组

    我正在尝试制作一系列标签 每个标签都有一个来自函数的不同值 我不知道要使用的标签的确切数量 我的意思是可以打印任意数量的值 请帮我做这件事 很简单 只需一个方法返回一个数组或一些 JLabels 集合 并将它们全部添加到您的 JCompon
  • 为什么 RMI 注册表忽略 java.rmi.server.codebase 属性

    我正在运行 java RMI 的 Hello World 示例 1 我在空文件夹中运行注册表 motta motta laptop tmp rmiregistry 2 我启动 HTTP 服务器以在运行时检索类 下载文件夹包含客户端 服务器的
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 设计抽象类时是否应该考虑序列化问题?

    一般来说这个问题来自Eclipse建议在抽象类上添加串行版本UID 由于该类是抽象类 因此该类的实例永远不会存在 因此它们永远不会被序列化 只有派生类才会被序列化 所以我的问题是放置一个安全 SuppressWarnings serial
  • 如何使用 SAX Java 解析器读取注释文本

    我只想使用 Java 中的 SAX 解析器读取 XML 文件中对象标记的注释 这是我的文件的摘要
  • 无法在 BlackBerry Playbook 上设置音量

    我在更改黑莓游戏书的音量时遇到问题 首先 我将 Android 应用程序重新打包到 Palybook 应用程序 我需要使用搜索栏更改黑莓剧本的音量 并在搜索监听器中设置音频管理器音量 这是代码 audioManager AudioManag
  • C/C++ 通过 Android NDK 在 JNI 中看不到 Java 方法

    我正在尝试从使用 NDK 构建的 C 类文件调用 Java 方法 它不断抛出常见的 未找到非静态方法 错误并导致整个 Android 应用程序崩溃 下面的代码片段 有些东西可能不需要 但我按原样保留它们 因为焦点 问题在于refreshJN

随机推荐