Windows – Disable Java version out of date prompt

command lineinternet-explorer-9javawindows 7

We are running IE9 and Java 1.7 Update 51 (WIN7) in our environment and I am having a heck of a time getting rid of the following popup.

Java Version Out of date

Since update 55 was released, users get the following prompt when brought to a Java page. Of course, if they hit Later, the Java app will run and the world is safe. But people hit different things and it's my job to herd the cows in the right direction.

What I found is that by adding the following Reg Key to HKCU

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

it will suppress the prompt. So I was planning on iterating through all user profiles and adding the key. But, after a reboot, my key is deleted and on the next launch of a Java app, I will get a prompt.

I'm prepping Update 55 for my environment and would like to get rid of this prompt for future releases of Java.

I also tried to use a deployment.properties file with the following data inside it:

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

I placed that file in the user directory C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment after an installation of Java.

That didn't work either.

Best Answer

I have been wrestling with that annoyance also and I discovered that the HKCU\Software\AppDataLow\Software\JavaSoft\DeploymentProperties registry key gets its values from the user's deployment.properties file. I have been deleting the file, recreating it then writing the properties/values that I want before Java loads. I have been running from the all users start up successfully on a Windows 7 32-bit and 64-bit test computer for the past two days.

Here is a PowerShell function that has worked for me:

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
Related Question