Skip to content

Update javaUpdate.cmd #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 71 additions & 6 deletions javaUpdate.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,23 @@ ping -n 1 google.com > nul || goto error
FOR /F "tokens=2 delims=< > " %%n IN ('curl.exe -s -L http://javadl-esd.sun.com/update/1.8.0/map-m-1.8.0.xml ^| find /i "https:"') DO set URL1=%%n
FOR /F "tokens=2 delims=< > " %%n IN ('curl.exe -s -L -k %URL1% ^| find /i "<version>"') DO set RemoteJavaVersionFull=%%n
set RemoteJavaVersion=%RemoteJavaVersionFull:~0,8%
set RemoteJavaUrl=%RemoteJavaVersionFull:~6%
set RemoteJavaExe=%RemoteJavaVersionFull:~6,2%
REM Examle
REM https://edelivery.oracle.com/otn-pub/java/jdk/8u60-b27/jre-8u60-windows-x64.exe
REM https://edelivery.oracle.com/otn-pub/java/jdk/8u%RemoteJavaVersionFull:~6%/jre-8u%RemoteJavaVersionFull:~6,2%-windows-x64.exe
echo The latest version of java is %RemoteJavaVersion%.




::----------- Find the local Java version-----------------------------------
set LocalJavaVersion=None
FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s ^& reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (
REM FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s ^& reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (
FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (
REM x64
REM FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (


if '%%n'=='InstallSource' (
set p=%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z
Expand All @@ -69,14 +78,37 @@ FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi
)
)

set LocalJavax64Version=None
REM FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s ^& reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (
FOR /F "tokens=1-15" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (


if '%%n'=='InstallSource' (
set p=%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z
set p=!p: =\!
set p=!p:\= !
for %%n in (!p!) do set c=%%n
)

if '%%n'=='DisplayName' (
set p=%%p
if "!p:~0,4!"=="Java" if not "%%q"=="Auto" if not '!LocalJavax64Version!'=='None' (set LocalJavax64Version=Multi) ELSE (set LocalJavax64Version=!c:~3!)
if "!p:~0,4!"=="J2SE" if not '!LocalJavax64Version!'=='None' (set LocalJavax64Version=Multi) ELSE (set LocalJavax64Version=!c:~3!)
)
)
if '%LocalJavaVersion%'=='None' echo There is no local version of Java. & goto install
if '%LocalJavax64Version%'=='None' echo There is no local version of Java. & goto install
if '%LocalJavaVersion%'=='Multi' echo There are multiple local versions of Java installed. & goto uninstall
if '%LocalJavax64Version%'=='Multi' echo There are multiple local versions of Java x64 installed. & goto uninstall
if not '%LocalJavaVersion%'=='%RemoteJavaVersion%' echo There is older local versions of Java installed. & goto uninstall
if not '%LocalJavax64Version:~0,8%'=='%RemoteJavaVersion%' echo There is older local versions of Java x64 installed. & goto uninstall
echo The local version of Java is %LocalJavaVersion%.

echo The local version of Java is %LocalJavax64Version%.


::----------- If they match, skip to the end---------------------------------
if '%RemoteJavaVersion%'=='%LocalJavaVersion%' (goto finished) ELSE (echo The Local version of Java is out of date.)
if '%RemoteJavaVersion%'=='%LocalJavax64Version%' (goto finished) ELSE (echo The Local version of Java x64 is out of date.)



Expand All @@ -93,8 +125,23 @@ FOR /F "tokens=1-4" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Win

if '%%n'=='DisplayName' (
set d=%%p
if "!d:~0,4!"=="Java" if not "%%q"=="Auto" msiexec.exe !c! /qn & ping -n 11 127.0.0.1 > nul
if "!d:~0,4!"=="J2SE" msiexec.exe !c! /qn & ping -n 11 127.0.0.1 > nul
if "!d:~0,4!"=="Java" if not "%%q"=="Auto" msiexec.exe !c! /qn /norestart & ping -n 11 127.0.0.1 > nul
if "!d:~0,4!"=="J2SE" msiexec.exe !c! /qn /norestart & ping -n 11 127.0.0.1 > nul
)
)

if '%LocalJavax64Version%'=='Multi' (echo Uninstalling all local versions of Java...) ELSE (echo Uninstalling the local version of Java...)
FOR /F "tokens=1-4" %%n IN ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s ^& reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s 2^> nul') DO (

if '%%n'=='UninstallString' (
set c=%%q
set c=!c:/I=/X!
)

if '%%n'=='DisplayName' (
set d=%%p
if "!d:~0,4!"=="Java" if not "%%q"=="Auto" msiexec.exe !c! /qn /norestart & ping -n 11 127.0.0.1 > nul
if "!d:~0,4!"=="J2SE" msiexec.exe !c! /qn /norestart & ping -n 11 127.0.0.1 > nul
)
)

Expand All @@ -106,11 +153,29 @@ echo Downloading latest version of Java...
set url2=http://javadl.sun.com/webapps/download/GetFile/%RemoteJavaVersionFull%/windows-i586/xpiinstall.exe
curl.exe -s -L -k -o %tmp%\java_inst.exe %url2%
echo Installing latest version of Java...
start /wait %tmp%\java_inst.exe /s
start /wait %tmp%\java_inst.exe /s REBOOT=Suppress
ping 127.0.0.1 > nul
del %tmp%\java_inst.exe
if not exist "%programfiles(x86)%" echo System is 32 bit. & goto regjava

echo Downloading latest version of Java x64...
set url2=https://edelivery.oracle.com/otn-pub/java/jdk/8u%RemoteJavaVersionFull:~6%/jre-8u%RemoteJavaVersionFull:~6,2%-windows-x64.exe
curl -s -L -H "Cookie: oraclelicense=accept-securebackup-cookie" -k -o %tmp%\java_inst.exe %url2%
echo Installing latest version of Java x64...
start /wait %tmp%\java_inst.exe /s REBOOT=Suppress
ping 127.0.0.1 > nul
del %tmp%\java_inst.exe

:regjava
Reg.exe add "HKLM\SOFTWARE\JavaSoft" /v "SPONSORS" /t REG_SZ /d "DISABLE" /f
Reg.exe add "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v "EnableJavaUpdate" /t REG_DWORD /d "0" /f
Reg.exe add "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v "NotifyDownload" /t REG_DWORD /d "0" /f
Reg.exe add "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v "EnableAutoUpdateCheck" /t REG_DWORD /d "0" /f
if not exist "%programfiles(x86)%" echo System is 32 bit. & goto finished
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\JavaSoft" /v "SPONSORS" /t REG_SZ /d "DISABLE" /f
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /v "EnableJavaUpdate" /t REG_DWORD /d "0" /f
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /v "NotifyDownload" /t REG_DWORD /d "0" /f
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /v "EnableAutoUpdateCheck" /t REG_DWORD /d "0" /f

::----------- Up to date ----------------------------------------------------
:finished
Expand All @@ -125,4 +190,4 @@ echo There was a network error. Please try again.
:noerror

endlocal
FOR /L %%n IN (1,1,10) DO ping -n 2 127.0.0.1 > nul & <nul set /p =.
FOR /L %%n IN (1,1,10) DO ping -n 2 127.0.0.1 > nul & <nul set /p =.