![Java 更新“无法下载所需的安装文件。”](https://linux22.com/image/1312177/Java%20%E6%9B%B4%E6%96%B0%E2%80%9C%E6%97%A0%E6%B3%95%E4%B8%8B%E8%BD%BD%E6%89%80%E9%9C%80%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%87%E4%BB%B6%E3%80%82%E2%80%9D.png)
在我的 Windows 7 机器上,Java 更新始终失败并显示此错误消息。
(编辑:Windows 8 上也会发生同样的事情)。
这似乎是一个常见的问题,有谁知道出了什么问题吗?除了禁用更新检查(从安全角度来看似乎是个坏主意)或等待唠叨消息然后手动安装新版本(从可用性的角度来看很烦人而且愚蠢)之外,还有其他解决方法吗?
请注意,我确实手动安装了以前的版本(我认为是从 6.23 更新到 6.30?),以为这可能会解决问题,但没有成功。
答案1
在阅读了以下内容后,我终于让它工作了:
事实证明,当 Java 更新程序尝试下载新更新时,它会使用名为“后台智能传输服务”(BITS) 的 Windows 服务。如果登录的用户只是标准用户,则 Java 更新程序无法正确使用 BITS 服务下载新更新。但是,如果 Java 更新程序无法使用 BITS 服务(服务被禁用或调用进程被拒绝权限),则 Java 更新程序会使用另一种机制下载和应用更新,即使原始用户只是具有有限权限(没有管理权限)的标准用户,该机制也能成功运行。
为了提升 Java 更新程序,以便标准用户可以安装 Java 更新,我们必须首先设置 Java 更新程序的应用程序兼容模式,以便以兼容模式运行没有“后台智能传输服务”的 Windows 2000。这将强制 Java 更新程序使用备用机制下载 Java 更新。
http://privilegeforum.scriptlogic.com/Forum/aff/3/aft/193/afv/topic.aspx
所以你要做的是:
- 找到 jucheck.exe (通常在
%PROGRAMFILES%\Common Files\Java\Java Update
或下%PROGRAMFILES(x86)%\Common Files\Java\Java Update
) - 打开它的属性并将其设置为在 Windows 2000 兼容模式下运行(对于所有用户或至少对于您的提升的用户!)
- 通过 Java 控制面板再次检查更新
安装程序会提醒您您的操作系统不受支持,但允许您安装更新。
我花了大约 3 年的时间寻找解决方案,终于解决了这个问题。仍在等待 Oracle 修复它。他们只是不明白一直以超级用户身份运行是一种不好的做法,而且已经过时了。
答案2
另一个非永久但快速的解决方案是jucheck.exe
在管理员模式下运行:
jucheck.exe
使用下列方法之一 查找 Java 更新程序可执行文件:jucheck
在开始菜单的搜索栏中输入。- 在看
%PROGRAM_FILES%\Common Files\Java\Java Update
- 运行 Java 更新
jucheck.exe
程序管理员模式通过上下文菜单:- 在“jucheck.exe”上按鼠标右键
- 选择“以管理员身份运行”。
答案3
我知道这是一个非常老的问题,但万一这对别人有帮助:
我遇到了这个问题,结果发现有几个“jre*”进程正在运行。我猜想这些是之前无法正常工作的 Java 运行时环境,它们锁定了一些资源。
只需确保您没有运行任何 Java 应用程序,然后打开任务管理器,查找以“jre”开头的任何进程,然后结束它们。然后尝试再次运行 jucheck.exe。对我来说很有效。
答案4
您应该尝试使用 Ninite 安装 Java。您可以直接访问 Ninite.com 并在运行时下选择 Java。然后,当您收到有关 Java 更新的通知时,再次运行 Ninite,它将安装最新的 Java,而无需使用 Java 更新机制。它真的很简单,无需回答任何问题,您也可以使用相同的 Ninite 程序从该站点更新其他应用程序。