Отключить подсказку версии Java устаревшей

24363
Paul Mung

Мы запускаем IE9 и Java 1.7 Update 51 (WIN7) в нашей среде, и у меня есть куча времени, чтобы избавиться от следующего всплывающего окна.

Версия Java устарела

После выхода обновления 55 пользователи получают следующее приглашение при переходе на страницу Java. Конечно, если они нажмут «Позже», приложение Java запустится, и мир станет безопасным. Но люди сталкиваются с разными вещами, и моя работа - загонять коров в правильном направлении.

Я обнаружил, что добавив следующий ключ Reg в HKCU

HKCU \ Software \ AppDataLow \ Software \ JavaSoft \ DeploymentProperties / v deploy.expiration.check.enabled / t REG_SZ / d false / f

это подавит подсказку. Поэтому я планировал перебрать все профили пользователей и добавить ключ. Но после перезагрузки мой ключ удаляется, и при следующем запуске Java-приложения я получаю подсказку.

Я готовлю Обновление 55 для своей среды и хотел бы избавиться от этой подсказки для будущих выпусков Java.

Я также попытался использовать deployment.propertiesфайл со следующими данными:

deploy.expiration.check.enabled = false deploy.expiration.decision.suppression.10.51.2 = true deploy.expiration.decision.10.51.2 = позже

Я поместил этот файл в каталог пользователя C:\Users\%username%\AppData\LocalLow\Sun\Java\Deploymentпосле установки Java.

Это тоже не сработало.

1

2 ответа на вопрос

3
clynch

Я также боролся с этим раздражением и обнаружил, что HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentPropertiesключ реестра получает свои значения из файла deploy.properties пользователя. Я удаляю файл, воссоздаю его и записываю свойства / значения, которые мне нужны, перед загрузкой Java. Последние два дня я успешно запускал все 32-разрядные и 64-разрядные компьютеры под управлением Windows 7.

Вот функция PowerShell, которая работает для меня:

Function JavaProperties { $userProfile = $Env:USERPROFILE Remove-Item -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment\deployment.properties" -Force  New-Item -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment" -ItemType File -Name "deployment.properties"  $deployFroperties = Get-ChildItem -Path "$($userProfile)\AppData\LocalLow\Sun\Java\Deployment" -Force -ErrorAction SilentlyContinue | Where{$_.Name -eq "deployment.properties"} | Select -ExpandProperty FullName $expDecision = New-TimeSpan -Start $($(Get-Date).ToString()) -End "January 1, 2020 11:59:00 PM" | Select -ExpandProperty TotalMilliseconds $expDecision  Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.suppression.10.51.2=true" -Force Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.10.51.2=later" -Force Add-Content -Path $deployFroperties -Value "deployment.expiration.decision.timestamp.10.51.2=$expDecision" -Force Add-Content -Path $deployFroperties -Force -Value "deployment.system.tray.icon=true"   }#End Function JavaProperties 
0
Nadu

Кроме того, кое-что из того, что я узнал, открыв веб-сайт Java, декомпилирует c: \ Program Files (x86) \ Java \ jdk1.8.0_66 ** jre \ bin \ plugin2 \ npjp2.dll ** в IDA6 Hexrays.

Эти настройки применяются:

HKEY_CURRENT_USER, SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties\pending deployment.expiration.decision.11.66.2 = update|block|later deployment.expiration.decision.suppression.11.66.2 true deployment.expiration.decision.timestamp.11.66.2 86401..18446744073709551616 (<- 0xFFFFFF FFFFFF)  HKEY_CURRENT_USER, SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties deployment.expiration.decision.11.66.2 deployment.expiration.decision.suppression.11.66.2 deployment.expiration.decision.timestamp.11.66.2  deployment.webjava.enabled false deployment.expiration.decision.ttl.11.66.2 86401..18446744073709551616 (<- 0xFFFFFF FFFFFF) 

для следующих окон Windows Vista пропустите часть "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ AppDataLow \"

так что не стесняйтесь поиграть с этим, и вы также можете попробовать эти значения в качестве настроек окружающей среды, как это

Startbrowser.cmd

set deployment.expiration.decision.11.66.2=later set deployment.expiration.decision.suppression.11.66.2=true Firefox.exe %* 

Хорошо, что это.

В конце какой-то псевдокод. Прими это как подсказку. И не будь серьезным - в случае, если это сбивает с толку, просто игнорируй это.

BOOL __stdcall DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) StringCompare ~otherStrings~ VIA mbscmp ~timestamp~ VIA sscanf "%llu" (<-unsigned long long int)   GetFromEnvOrReg_Depl_pending FORALL  deployment.expiration.decision.11.66.2 deployment.expiration.decision.suppression.11.66.2 deployment.expiration.decision.timestamp.11.66.2  deployment.expiration.decision.11.66.2 ==  update 1 block 2 later 3 if NoValidValue GetFromEnvOrReg_Depl FORALL  deployment.expiration.decision.11.66.2 deployment.expiration.decision.suppression.11.66.2 deployment.expiration.decision.timestamp.11.66.2    deployment.expiration.decision.suppression.11.66.2 true  deployment.expiration.decision.timestamp.11.66.2   GetFromEnvOrReg_Depl  deployment.webjava.enabled false if success return false  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unfinished deployment.expiration.decision.ttl.11.66.2 ttl+604800 (or +10 if decision is 'later' ) compare is bigger as timestamp if ... decision is not 'block' return false ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   FUNC GetFromEnvOrReg_Depl_pending ( $Value ) MSVCR100.getenv if success return $result  RegOpenKeyExA HKEY_CURRENT_USER  isVistaOrAbove  SOFTWARE\AppDataLow\SOFTWARE\JavaSoft\DeploymentProperties\pending SOFTWARE\JavaSoft\DeploymentProperties\pending  RegQueryValueExA $Value if success Return $result  FUNC GetFromEnvOrReg_Depl ( $Value ) *same* but with  SOFTWARE\JavaSoft\DeploymentProperties  FUNC isVistaOrAbove GetVersionExA VersionInformation.dwPlatformId == VER_PLATFORM_WIN32_NT (2) && VersionInformation.dwMajorVersion >= 6  

Похожие вопросы