1

Мы запускаем 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.

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

2 ответа2

3

Я также боролся с этим раздражением и обнаружил, что раздел реестра 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

Кроме того, кое-что из того, что я узнал, открыв веб-сайт 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  

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .