Desativar o aviso de atualização de versão do Java

1

Estamos executando o IE9 e o Java 1.7 Update 51 (WIN7) em nosso ambiente e estou me livrando do popup a seguir.

Desde que a atualização 55 foi lançada, os usuários recebem o seguinte prompt quando são trazidos para uma página Java. Claro, se eles acertarem Mais tarde, o aplicativo Java será executado e o mundo estará seguro. Mas as pessoas acertam coisas diferentes e é meu trabalho reunir as vacas na direção certa.

O que eu encontrei é que adicionando a seguinte chave Reg para HKCU

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

suprimirá o aviso. Então eu estava planejando iterar todos os perfis de usuários e adicionar a chave. Mas, após a reinicialização, minha chave é excluída e, na próxima inicialização de um aplicativo Java, recebo uma solicitação.

Estou preparando o Update 55 para o meu ambiente e gostaria de me livrar desse aviso para versões futuras do Java.

Eu também tentei usar um arquivo deployment.properties com os seguintes dados dentro dele:

deployment.expiration.check.enabled=false deployment.expiration.decision.suppression.10.51.2=true deployment.expiration.decision.10.51.2=later

Coloquei esse arquivo no diretório do usuário C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment após uma instalação do Java.

Isso também não funcionou.

    
por Paul Mung 22.05.2014 / 19:52

2 respostas

3

Eu tenho lutado com esse aborrecimento também e descobri que a chave de registro HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentProperties obtém seus valores do arquivo deployment.properties do usuário. Eu tenho excluído o arquivo, recriando-o e, em seguida, gravando as propriedades / valores que desejo antes que o Java seja carregado. Eu tenho executado a partir de todos os usuários de iniciar com êxito em um computador de teste do Windows 7 de 32 bits e 64 bits nos últimos dois dias.

Aqui está uma função do PowerShell que funcionou para mim:

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
    
por 18.06.2014 / 02:34
0

Bem, além disso, algumas coisas que eu saí descobrindo Java web start Descompilar c: \ Arquivos de programas (x86) \ Java \ jdk1.8.0_66 ** jre \ bin \ plugin2 \ npjp2.dll ** em IDA6 Hexrays

Essas configurações são involadas:

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)

para abaixo do Windows Vista, exclua a parte "SOFTWARE \ AppDataLow \"

sinta-se à vontade para brincar com isso e você também pode tentar esses valores como configurações de ambiente como esta

Startbrowser.cmd

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

Ok, isso.

No final, algum pseudo código. Tome isso como dica. E não seja sério - caso seja confuso, ignore-o.

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  
    
por 11.12.2015 / 04:02