Не получается отключить автоматическое обновление Java

77

Я просто настраиваю свой новый ноутбук с Windows 7 и хочу отключить автоматическое обновление Java (и, таким образом, убить фоновый процесс silly jusched.exe), но не могу заставить его отключить его.

Я нашел апплет Панели управления Java и нашел параметры на вкладке Обновление, которые должны управлять им. Я могу отключить их, применить их и успешно закрыть диалог. Но если я просто сразу же снова открою резервную копию диалога, я вижу, что изменения на самом деле не были сделаны. Я пробовал это много раз, и это просто не берет. Что с этим?

Я также попытался отключить значок в системном трее и получил тот же эффект. Однако изменение размера кэша временных интернет-файлов работает.

Есть идеи? Спасибо!

Скотт Буссингер
источник
1
Немного продолжения для будущих читателей: я использую 64-разрядную версию Windows 7 и думаю, что отсюда и проблема. Я предполагаю, что апплет панели управления Java пытается изменить настройки в неправильных местах, так как я установил 32-битную Java на моей 64-битной машине (IE обычно работает как 32-битный процесс даже под 64-битной ОС, поэтому я хотел 32 битовая версия Java).
Скотт Буссингер
2
Также обсуждается на Super User: superuser.com/questions/130961
Крис В. Ри
Угадай, что! В последней версии Java JRE 6 опция панели «Обновить» была удалена!
hopeseekr
@hopeseekr Это вернулось. :)
Матин Улхак
@ScottBussinger: точно такая же проблема с чистой 32-битной системой Windows 7.
марта

Ответы:

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. Например, 32-разрядная версия Java 7, установленная в 64-разрядной версии Windows, будет иметь ее в:

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

Найдя файл, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».

Оттуда снимите флажок «Автоматически проверять наличие обновлений» на вкладке «Обновление» и нажмите «ОК». Вы можете проверить, что параметр был применен, перейдя к тому же экрану, который вы обычно делаете через Панель управления.

Вы также можете проверить запущенные процессы, чтобы увидеть, что они jusched.exeбольше не запущены - они были автоматически завершены, когда вы нажали OK.

Александр Лай
источник
3
Угадай, что! В последней версии Java JRE 6 опция панели «Обновить» была удалена! Поговорим о СЛОВ.
hopeseekr
@hopeseekr Согласен с тобой! Теперь ответ не относится к JRE 6 ... @Lai Есть ли у нас обходной путь?
Nam G VU
1
В Java 7 снова есть вкладка «Обновление».
Изи
1
на самом деле это не работает для версий
Java
1
Вкладка «Обновление» не отображается, если javacpl.exeона не открыта с правами администратора.
Аурон
35

Вы можете отключить обновление, используя раздел реестра,

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». Только (по умолчанию), Country, PostStatysUrl ключи.
Человек-паук
10
на Win64 (под управлением windows 7) этот ключ теперь:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy\EnableJavaUpdate
ekawas
... опция WOW6432Node также управляет 64-битной версией?
Эшли
Этот подход все еще работает в JRE u33?
blak3r
10

Просто удалите программу из запуска в реестре - удалите, если из

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Джон Роудс
источник
Спасибо, я знал, что могу удалить запись в реестре, но не могу понять, почему не работает «правильный» способ. Я полагаю, что это должна быть какая-то проблема с разрешениями.
Скотт Буссингер
1
Это хакерский, но быстрый ответ. Смотрите бездушный ответ для поддерживаемого ответа.
Райан Болджер
1
Вы всегда можете просто удалить этот исполняемый файл. Просто стоит упомянуть.
Синпин
9

На Windows 7 OEM

В 64-битной системе: запустите C: \ Program Files (x86) \ Java \ jre6 \ bin \ javacpl.exe с привилегиями администратора

В 32-битной системе: запустите C: \ Program Files \ Java \ jre6 \ bin \ javacpl.exe с привилегиями администратора

Для этого следуйте по пути в браузере Windows Explorer и щелкните правой кнопкой мыши javacpl.exe, затем выберите «Запуск от имени администратора»

Снимите флажок «Автоматически проверять наличие обновлений» и нажмите «Никогда не проверять», и все готово.


источник
Как упоминалось в других ответах, этот флажок, похоже, пропал около 1.6.0_21
jimbo
7

Загрузите Autoruns (live.sysinternals.com/autoruns.exe) из Sysinternals / Microsoft и снимите флажок «SunJavaUpdateSched» на вкладке «Вход в систему».

user3542
источник
Не показывался при входе в систему, но появлялся при входе во все.
Rwallace
Инструменты Sysinternals превосходны.
Джимбо
1

Вы, вероятно, можете сделать это из конфигурации системы (Run: msconfig). На вкладке «Автозагрузка» снимите флажок с нежелательной службы.

DMO
источник
Мне тоже было интересно об этом ... интересно, почему никто не упомянул об этом, чтобы остановить этот паршивый сервис обновлений от автозапуска. Самое простое решение вместо того, чтобы возиться с реестром и прочим.
killjoy
1

Мне нужно было сделать это в корпоративной среде Active Directory на многих машинах. Я нашел довольно много постов по всему Интернету, в основном детально описывающих изменения в значениях реестра EnableJavaUpdateи EnableAutoUpdateCheckв HKLMи HKCU.

Хотя первый работал, это было не то, что я хотел, потому что он отключил вкладку « Обновление » в панели управления Java, которую я хотел сохранить для ручных запусков. Переключение EnableAutoUpdateCheckна 0не сработало независимо от того, в какой куст я его вставил. Я не знаю, было ли в последнее время изменение в том, как Java хранит его, но это значение даже не введено в DWORD на моем компьютере с Windows 7. Это двоичное значение, которое я пытался скопировать и передать на другие рабочие станции, но это не сработало.

В итоге я просто запретил запуск jusched.exe, используя следующие настройки GPO :

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

Это препятствует автоматическому запуску обновления, но сохраняет возможность запускать его вручную.

prl77
источник
Для тех, кто придет за мной: ответ prl77 - это то, что у меня работает для Java 8 на Win10 x64. Oracle, очевидно, обратился к двоичному ключу реестра для этой функции, которая активируется с каждым обновлением (и, по-видимому, наугад, даже без обновления). Однако не мешало работать с групповой политикой.
Логан Джонс
0

Предупреждение: Кажется, что в следующий раз, когда вы устанавливаете более новую Java, снова включается «проверка обновлений»; по крайней мере, это помогло мне перейти с Java 6 с обновлением 15 на Java 6 с обновлением 16 в Windows 7.

Так что на данный момент единственный способ, которым я навсегда оставил отключенным «проверку наличия обновлений», - это выполнить установку по сценарию, например, 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 во время каждой установки.

Питер Мортенсен
источник
Первые две ссылки не работают.
Питер Мортенсен