![在注册表中禁用 Java 更新程序](https://linux22.com/image/1427715/%E5%9C%A8%E6%B3%A8%E5%86%8C%E8%A1%A8%E4%B8%AD%E7%A6%81%E7%94%A8%20Java%20%E6%9B%B4%E6%96%B0%E7%A8%8B%E5%BA%8F.png)
Java 更新程序要求下载新更新。如何在域中的多台计算机上禁用此功能?这是这个复选框:
但似乎无法在注册表中取消选中它。我试过:
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"=-