在注册表中禁用 Java 更新程序

在注册表中禁用 Java 更新程序

Java 更新程序要求下载新更新。如何在域中的多台计算机上禁用此功能?这是这个复选框: http://i.imgur.com/ut7W34C.png?1

但似乎无法在注册表中取消选中它。我试过:

32 位:

[HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Java Update\Policy]
"EnableJavaUpdate"=dword:00000000

64 位:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy]
"EnableJavaUpdate"=dword:00000000
"EnableAutoUpdateCheck"=dword:00000000
"NotifyDownload"=dword:00000001
"NotifyInstall"=dword:00000001

问题是,Java控制面板上的 DWORD EnableJavaUpdate 隐藏选项卡“更新”,但我不想隐藏此选项卡,只需取消选择此复选框

我尝试取消选中复选框并直观地比较注册表路径的内容。

我也尝试了 Sysinternals ProcMonitor,但在注册表中找不到存储此信息的位置。

编辑

1.7.0_67 Java 在 x64 上存在问题,注册表中的 EnableJavaUpdate 设置为 1,但不起作用(不显示更新选项卡)。请参阅证明

1.7.0_51 x64 上的 Java 有问题,计算机中缺少整个注册表路径。请参阅证明

x86 上的 1.7.0._51 Java 在注册表中有路径,并且在“配置 Java”对话框中也有“更新”选项卡。(我没有屏幕截图)。

我需要停止要求下载新版本,然后解决在所有计算机上更新所有 Java 旧版本。

答案1

根据我的经验,使用 Java 控制面板禁用 Java 更新不起作用(这不是 Oracle 所说的 UAC 问题),“Policy”项下的相关注册表值也不起作用。我知道这很荒谬。

真正有效的SunJavaUpdateSched方法是删除 Windows“运行”键中的值。当然,如果您稍后手动更新或安装 Java,则将重新创建此键。由于您提到拥有“多台计算机”,因此下面是使用 Windows 7 64 位上的命令行执行此操作的示例:

reg delete "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run" /v "SunJavaUpdateSched" /f

答案2

来源如何在 Windows 7 网络计算机上禁用 Java 更新通知

更改 Java 注册表项

在 Windows 7 PC 上打开 RegEdit。在进行任何注册表更改之前,建议先创建备份。

要禁用 Java 更新通知,请浏览以下注册表项

32位用户:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java 更新\策略

  • 将 EnableAutoUpdateCheck 更改为 0
  • 将 EnableJavaUpdate 更改为 0

64位用户:

HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java 更新\策略

  • 将 EnableJavaUpdate 更改为 0
  • 将 NotifyDownload 更改为 0
  • 添加一个名为“EnableAutoUpdateCheck”的新 DWORD 并设置为 0

本文的其余部分将介绍如何使用 Windows 组策略禁用 Java 更新通知。您需要一台安装了最新 Java 的 Windows 7 计算机和一台运行组策略的 Windows Server 2008。

答案3

你尝试过这个吗? http://java.com/en/download/help/javacpl.xml

这似乎还重新启用了“高级”选项卡下的“Java 插件”复选框。否则,它总是呈灰色,尽管我是该框的管理员...

答案4

我使用这个注册表(.reg)文件来实现此目的:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run]
"SunJavaUpdateSched"=-

相关内容