似乎无法禁用Java自动更新


77

我只是在调整我的新Windows 7笔记本电脑,并想禁用Java自动更新(从而终止愚蠢的jusched.exe后台进程),但是我似乎无法真正关闭它。

我找到了Java控制面板小程序,并在应控制它的“更新”选项卡上找到了设置。我可以关闭它们,应用它们,然后成功关闭对话框。但是,如果我立即再次打开对话框备份,则会发现实际上并未进行更改。我已经尝试了无数次,只是没有用。那是怎么回事?

我还尝试禁用系统任务栏中的图标,并获得了相同的效果。但是,更改Internet临时文件缓存的大小是可行的。

有任何想法吗?谢谢!


1
对于将来的读者来说,只是一些后续操作:我正在使用Windows 7的x64版本,而我认为这就是问题所在。我的猜测是Java控制面板小程序试图在错误的位置更改设置,因为我在64位计算机上安装了32位Java(即使在64位操作系统下,IE也通常以32位进程运行,因此我希望32位Java版本)。
Scott Bussinger 2009年

2
也在超级用户上讨论:superuser.com/questions/130961
Chris W. Rea 2010年

你猜怎么了!在最新版本的Java JRE 6中,删除了“更新”面板选项!
hopeseekr 2011年

@hopeseekr又回来了。:)
Mateen Ulhaq 2011年

@ScottBussinger:对于纯32位Windows 7系统,完全相同的问题。
MarcH 2012年

Answers:


80

实际上,此问题是由于控制面板需要管理员特权才能允许Java控制面板保存您的设置(由于Sun Microsystems的存在,它已经存在了很长时间未得到修复)。

首先,您需要在以下位置之一找到“ Java控制面板”可执行文件:

C:\Program Files\Java\jre[version]\bin\javacpl.exe

要么

C:\Program Files (x86)\Java\jre[version]\bin\javacpl.exe

路径会有所不同,具体取决于系统的体系结构以及所安装的Java版本。例如,在64位版本的Windows上安装的32位版本的Java 7会将其包含在:

C:\Program Files (x86)\Java\jre7\bin\javacpl.exe

找到文件后,右键单击它,然后选择“以管理员身份运行”。

从那里,取消选中“更新”选项卡上的“自动检查更新”,然后单击“确定”。您可以通过导航到通常与“控制面板”相同的屏幕来验证设置是否已应用。

您还可以检查正在运行的进程,以使其jusched.exe不再运行-单击“确定”后,该进程将自动终止。


3
你猜怎么了!在最新版本的Java JRE 6中,删除了“更新”面板选项!谈论恶意软件。
hopeseekr 2011年

@hopeseekr同意你的观点!现在答案不适用于JRE 6 ... @Lai我们有解决方法吗?
Nam G VU

1
Java 7再次具有“更新”选项卡。
Iszi 2012年

1
实际上这不适用于Java7版本
scigor 2013年

1
如果javacpl.exe未使用管理权限打开“更新”选项卡,则不会出现。
奥龙2014年

34

您可以使用注册表项禁用更新,

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate

或者如果您使用的是64位Windows

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy\EnableJavaUpdate

设置为0以禁用此键。

这种方法的优点是它对所有用户禁用它。


2
这是因为JRE唯一可行的选择6更新21
hopeseekr

我打开了HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Update \ Policy,它没有任何名为“ EnableJavaUpdate”的键或值。仅(默认),国家/地区,PostStatysUrl键。
蜘蛛侠

10
在Win64(运行Windows 7)上,此密钥现在为:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy\EnableJavaUpdate
ekawas 2011年

... WOW6432Node选项也可以控制64位版本吗?
Ashley

这种方法在JRE u33中仍然有效吗?
blak3r 2012年

10

只要从启动注册表中删除程序-如果从

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

谢谢,我知道我可以删除注册表项,但是我不知道为什么用“正确”的方法行不通。我认为这一定是某种权限问题。
Scott Bussinger 09年

1
这是骇人但快速的答案。请参阅无灵魂的答案以获取支持的答案。
Ryan Bolger

1
您也可以随时删除该可执行文件。值得一提。
2010年

9

在Windows 7 OEM上

在64位系统上:以管理员权限运行C:\ Program Files(x86)\ Java \ jre6 \ bin \ javacpl.exe

在32位系统上:以管理员权限运行C:\ Program Files \ Java \ jre6 \ bin \ javacpl.exe

为此,请遵循Windows资源管理器浏览器中的路径,然后右键单击javacpl.exe,然后选择“以管理员身份运行”

取消选中“自动检查更新”更新功能,然后单击“从不检查”就可以了。


如其他答案所述,该复选框似乎在1.6.0_21左右丢失
jimbo

7

从Sysinternals / Microsoft下载Autoruns(live.sysinternals.com/autoruns.exe),然后取消选中“登录”选项卡下的“ SunJavaUpdateSched”。


没有出现在“登录”下,但是出现在“所有”下。
rwallace 2011年

Sysinternals工具非常出色。
jimbo 2011年

1

您可能可以从“系统配置”中执行此操作(运行:msconfig)。在“启动”选项卡中,取消选中不需要的服务。


我也想知道这一点...想知道为什么没有人提到它来阻止糟糕的更新服务自动启动。最简单的解决方案,而不是弄乱注册表和其他内容。
killjoy


1

我需要在许多计算机上的企业Active Directory环境中执行此操作。我在Internet上发现了很多帖子,其中大部分以各种方式详细介绍了注册表值EnableJavaUpdateEnableAutoUpdateCheckin HKLM和中的更改HKCU

尽管前者有效,但它不是我想要的,因为它禁用了Java控制面板中的“ 更新”选项卡,而我希望保留该选项卡以进行手动运行。不管我将其放在哪个配置单元中,翻转EnableAutoUpdateCheck至都0无效。我不知道Java存储方式最近是否发生了变化,但是Windows 7上甚至没有键入DWORD值。这是一个二进制值,我尝试将其复制并推送到其他工作站,但是没有用。

我最终只是使用以下GPO设置阻止了jusched.exe运行:

Users Config → Policies → Admin Templates → System → Don't run specified Windows applications

这样可以阻止更新自动运行,但是保留了手动运行更新的功能。


对于那些追随我的人:prl77的答案是Win10 x64上的Java 8对我有效。Oracle显然为此功能使用了一个二进制注册表项,该注册表项在每次更新时都会重新激活(即使没有更新也似乎是随机激活的。)避免使用组策略运行确实可以解决问题。
Logan Jones

0

警告:下次您安装较新的Java时,它似乎重新打开了“检查更新”。至少对我而言,在Windows 7上将Java 6 Update 15升级为Java 6 Update 16确实对我有帮助。

因此,就目前而言,我发现永久禁用禁用的“检查更新”的唯一方法是执行脚本安装,例如http://forums.sun.com/thread.jspa?threadID=5198773或以下方法:

blog.stealthpuppy.com/scriptcorner/unattended-install-sun-jre-16-update-10

要让所有用户都禁用更新检查有很多问题,最好的解决方案似乎是JRE 1.6.0_05自动更新-每次安装期间涉及deploy.properties文件的deploy.properties问题


前两个链接断开。
彼得·莫滕森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.