web-dev-qa-db-ja.com

Javaバージョンの古いプロンプトを無効にする

私たちはIE9とJava 1.7 Update 51(WIN7)を環境で実行しており、次のポップアップを取り除くのにかなりの時間がかかっています。

Java Version Out of date

アップデート55がリリースされて以来、ユーザーはJavaページに移動すると、次のプロンプトが表示されます。もちろん、後でヒットすると、Javaアプリが実行され、世界は安全ですが、人々はさまざまなことにぶつかり、正しい方向に牛を群れにするのが私の仕事です。

私が見つけたのは、HKCUに次のRegKeyを追加することです

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

プロンプトを抑制します。そのため、すべてのユーザープロファイルを繰り返し処理し、キーを追加することを計画していました。しかし、再起動後、私のキーは削除され、Javaアプリの次回の起動時に、プロンプトが表示されます。

私は自分の環境用にUpdate55を準備しており、Javaの将来のリリースのためにこのプロンプトを削除したいと思います。

また、次のデータを含むdeployment.propertiesファイルを使用しようとしました。

deployment.expiration.check.enabled = falsedeployment.expiration.decision.suppression.10.51.2 =真のdeployment.expiration.decision.10.51.2 =後で

Javaのインストール後、そのファイルをユーザーディレクトリC:\Users\%username%\AppData\LocalLow\Sun\Java\Deploymentに配置しました。

それもうまくいきませんでした。

1
Paul Mung

私もその煩わしさに取り組んできましたが、HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentPropertiesレジストリキーは、ユーザーのdeployment.propertiesファイルから値を取得します。ファイルを削除して再作成し、必要なプロパティ/値を書き込んでからJavaロードします。すべてのユーザーから実行しています。Windows732ビットで正常に起動します。過去2日間の64ビットテストコンピューター。

これが私のために働いた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
3
clynch

さらに、私が発見したいくつかのものJava web start c:\ Program Files(x86)\ Java\jdk1.8.0_66 ** jre\bin\plugin2\npjp2.dll ** IDA6Hexraysで

これらの設定が含まれます:

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の下では、「SOFTWARE\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  
0
Nadu