View difference between Paste ID: rn3KQfCA and XjyR8Ks8
SHOW: | | - or go back to the newest paste.
1
:: Purpose:       1. Nuke ALL versions of the Java Runtime, series 3 through 7, x86 and x64, and JavaFX
2
::                2. Leaves Java Development Kit installations intact
3
::                3. Reinstalls the latest JRE (if you want it to)
4
::                4. Puts the lotion on its skin.
5-
:: Requirements:  local admin rights
5+
:: Requirements:  local administrative rights
6
:: Author:        vocatus on reddit.com/r/sysadmin and /r/usefulscripts
7
::                additional thanks to: 
8
::                 - reddit.com/user/cannibalkitteh  : additional registry & file cleaning locations
9
::                 - reddit.com/user/sdjason         : optional JRE reinstall functionality 
10
::                 - forums.oracle.com/people/mattmn : a lot of stuff from his Java removal script
11-
:: History:       1.3 + FEATURE:      Added variables to reinstall Java after cleanup (off by default) (sdjason)
11+
:: History:       1.4 + FEATURE:      Added check to see if we're on Windows XP, to run different code for certain sections
12
::                    + FEATURE:      Added comprehensive WMI repair if on Windows XP
13
::                    + FEATURE:      Added XP versions of a lot of the code
14
::                1.3 + FEATURE:      Added variables to reinstall Java after cleanup (off by default) (sdjason)
15
::                    + FILE CLEANUP: Added C:\Users*\AppData\LocalLow\Sun\Java\jre* (cannibalkitteh)
16
::                    + FILE CLEANUP: Added C:\Users*\AppData\LocalLow\Sun\Java\AU   (cannibalkitteh)
17-
::                    + REGISTRY:     Added additional locations,                    (cannibalkitteh)
17+
18
::                    + UNINSTALLER:  Added WMIC wildcard-matching to catch all JRE GUIDs, including future revisions
19
::                    + FILE CLEANUP: Major overhaul,                                (mattm)
20
::                    + REGISTRY:     Added additional locations:                    (cannibalkitteh)
21
::                      - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
22
::                      - HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
23
::                    + PREP:         Added Chrome to the list of browsers to kill before starting
24
::                    + PREP:         Added /T flag (terminate child processes) to all browser and Java kill lines
25
::                    * LOGGING:      Minor improvements
26
::                1.1 + Massive overhaul of functionality and logging
27-
@echo off
27+
28-
set VERSION=1.3
28+
29-
set UPDATED=2013-07-15
29+
30
::@echo off
31
set VERSION=1.4
32
set UPDATED=2013-07-16
33
34
:::::::::::::::
35
:: VARIABLES :: -- set these if you'd like
36
:::::::::::::::
37
:: Rules for variables:
38
::  * NO quotes!                       (bad:  "c:\directory\path"       )
39
::  * NO trailing slashes on the path! (bad:   c:\directory\            )
40
::  * Spaces are okay                  (okay:  c:\my folder\with spaces )
41
::  * Network paths are okay           (okay:  \\server\share name      )
42
::                                     (       \\172.16.1.5\share name  )
43
44
:: Log settings
45
set LOGPATH=%SystemDrive%\Logs
46
set LOGFILE=%COMPUTERNAME%_java_runtime_removal.log
47
48
:: Java re-install. Change to 'yes' if you want to reinstall Java after cleanup is done.
49
:: If you do, make sure to set the location, file name and arguments below!
50
set REINSTALL_JAVA=no
51
52
:: The JRE installer must be in a place the script can find it (e.g. the same directory as the script)
53
set JAVA_LOCATION=%~dp0
54
set JAVA_BINARY=jre-7u25-windows-x64.exe
55
set JAVA_ARGUMENTS=/s /v"ADDLOCAL=ALL IEXPLORER=1 MOZILLA=1 JAVAUPDATE=0 REBOOT=suppress" /qn
56
57
:: =================================================================================== ::
58
::   Think of everything below this line like a feral badger: Look, but Do Not Touch   ::
59
:: =================================================================================== ::
60
61
:: Check if we're on XP, if so, set the flag. This affects some commands later,
62
:: because XP uses slightly different binaries for reg.exe and various other Windows utilities
63
ver | find "XP"
64
IF %ERRORLEVEL%==0 set OS_VERSION=XP
65
66
:: Force WMIC location
67-
::::::::::
67+
set WMIC=%WINDIR%\system32\wbem\wmic.exe
68-
:: PREP ::
68+
69-
::::::::::
69+
70-
:: Log that we started
70+
71
if exist "%LOGPATH%\%LOGFILE%" del "%LOGPATH%\%LOGFILE%"
72
73
:: Get the date into a format we can use (ISO standard date format)
74
set CUR_DATE=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%
75-
echo %CUR_DATE% %TIME%   Beginning removal of Java Runtimes (series 3-7, x86 and x64) and JavaFX...>> "%LOGPATH%\%LOGFILE%"
75+
76-
echo %CUR_DATE% %TIME%   Beginning removal of Java Runtimes (series 3-7, x86 and x64) and JavaFX...
76+
:::::::::::::::::::::
77
:: PREP AND CHECKS ::
78
:::::::::::::::::::::
79-
echo %CUR_DATE% %TIME%   Killing all running browsers and Java instances first...>> "%LOGPATH%\%LOGFILE%"
79+
80-
echo %CUR_DATE% %TIME%   Killing all running browsers and Java instances first...
80+
81
echo  v%VERSION%, updated %UPDATED%
82-
taskkill /f /im java.exe /T >> "%LOGPATH%\%LOGFILE%"
82+
83-
taskkill /f /im javaw.exe /T >> "%LOGPATH%\%LOGFILE%"
83+
echo %CUR_DATE% %TIME%   Beginning removal of Java Runtime Environments (series 3-7, x86 and x64) and JavaFX...>> "%LOGPATH%\%LOGFILE%"
84-
taskkill /f /im javaws.exe /T >> "%LOGPATH%\%LOGFILE%"
84+
echo %CUR_DATE% %TIME%   Beginning removal of Java Runtime Environments (series 3-7, x86 and x64) and JavaFX...
85-
taskkill /f /im jqs.exe /T >> "%LOGPATH%\%LOGFILE%"
85+
86-
taskkill /f /im jusched.exe /T >> "%LOGPATH%\%LOGFILE%"
86+
:: Do a quick check to make sure WMI is working, and if not, run a repair on it
87-
taskkill /f /im iexplore.exe /T >> "%LOGPATH%\%LOGFILE%"
87+
wmic timezone
88-
taskkill /f /im iexplorer.exe /T >> "%LOGPATH%\%LOGFILE%"
88+
if not %ERRORLEVEL%==0 (
89-
taskkill /f /im firefox.exe /T >> "%LOGPATH%\%LOGFILE%"
89+
    echo %CUR_DATE% %TIME% ! WMI appears to be broken. Running WMI repair. This might take a minute, be patient...>> "%LOGPATH%\%LOGFILE%"
90-
taskkill /f /im chrome.exe /T >> "%LOGPATH%\%LOGFILE%"
90+
    echo %CUR_DATE% %TIME% ! WMI appears to be broken. Running WMI repair. This might take a minute, be patient...
91
    net stop winmgmt
92
    pushd %WINDIR%\system32\wbem
93
    for %%i in (*.dll) do RegSvr32 -s %%i
94-
:::::::::::::::::::::::::
94+
    :: Kill this random window that pops up
95
    tskill wbemtest /a 2>NUL
96
    scrcons.exe /RegServer
97
    unsecapp.exe /RegServer
98
    start "" wbemtest.exe /RegServer
99
    tskill wbemtest /a 2>NUL
100
    tskill wbemtest /a 2>NUL
101
    winmgmt.exe /RegServer
102
    wmiadap.exe /RegServer
103
    wmiapsrv.exe /RegServer
104
    wmiprvse.exe /RegServer
105
    net start winmgmt
106
    popd
107
    )
108
	
109
:: Kill all browsers and running Java instances first
110-
wmic product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F8__170__FF}'" call uninstall /nointeractive >> "%LOGPATH%\%LOGFILE%"
110+
echo %CUR_DATE% %TIME%   Killing all running browsers and Java instances...>> "%LOGPATH%\%LOGFILE%"
111
echo %CUR_DATE% %TIME%   Killing all running browsers and Java instances...
112
if %OS_VERSION%==XP (
113
    :: XP version of the task killer
114
    echo.
115
    tskill /a /v java >> "%LOGPATH%\%LOGFILE%"
116
    tskill /a /v javaw >> "%LOGPATH%\%LOGFILE%"
117-
wmic product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F8__160__FF}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
117+
    tskill /a /v javaws >> "%LOGPATH%\%LOGFILE%"
118-
wmic product where "IdentifyingNumber like '{3248F0A8-6813-11D6-A77B-00B0D0160__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
118+
    tskill /a /v jqs >> "%LOGPATH%\%LOGFILE%"
119
    tskill /a /v jusched >> "%LOGPATH%\%LOGFILE%"
120
    tskill /a /v iexplore >> "%LOGPATH%\%LOGFILE%"
121
    tskill /a /v iexplorer >> "%LOGPATH%\%LOGFILE%"
122
    tskill /a /v firefox >> "%LOGPATH%\%LOGFILE%"
123-
wmic product where "IdentifyingNumber like '{3248F0A8-6813-11D6-A77B-00B0D0150__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
123+
    tskill /a /v chrome >> "%LOGPATH%\%LOGFILE%"
124
    echo.
125
) ELSE (
126
    :: All other Windows versions
127
    echo.
128-
wmic product where "IdentifyingNumber like '{7148F0A8-6813-11D6-A77B-00B0D0142__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
128+
    taskkill /f /im java.exe /T >> "%LOGPATH%\%LOGFILE%"
129
    taskkill /f /im javaw.exe /T >> "%LOGPATH%\%LOGFILE%"
130
    taskkill /f /im javaws.exe /T >> "%LOGPATH%\%LOGFILE%"
131
    taskkill /f /im jqs.exe /T >> "%LOGPATH%\%LOGFILE%"
132
    taskkill /f /im jusched.exe /T >> "%LOGPATH%\%LOGFILE%"
133
    taskkill /f /im iexplore.exe /T >> "%LOGPATH%\%LOGFILE%"
134
    taskkill /f /im iexplorer.exe /T >> "%LOGPATH%\%LOGFILE%"
135-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_25\Uninst.isu" -a
135+
    taskkill /f /im firefox.exe /T >> "%LOGPATH%\%LOGFILE%"
136-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_24\Uninst.isu" -a
136+
    taskkill /f /im chrome.exe /T >> "%LOGPATH%\%LOGFILE%"
137-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_23\Uninst.isu" -a
137+
    echo.
138-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_22\Uninst.isu" -a
138+
    )
139-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_21\Uninst.isu" -a
139+
140-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_20\Uninst.isu" -a
140+
141-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_19\Uninst.isu" -a
141+
	:::::::::::::::::::::::::
142-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_18\Uninst.isu" -a
142+
143-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_17\Uninst.isu" -a
143+
144-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_16\Uninst.isu" -a
144+
145-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_15\Uninst.isu" -a
145+
146-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_14\Uninst.isu" -a
146+
147-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_13\Uninst.isu" -a
147+
148-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_12\Uninst.isu" -a
148+
149-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_11\Uninst.isu" -a
149+
150-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_10\Uninst.isu" -a
150+
151-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_09\Uninst.isu" -a
151+
152-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_08\Uninst.isu" -a
152+
153-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_07\Uninst.isu" -a
153+
154-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_06\Uninst.isu" -a
154+
155-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_05\Uninst.isu" -a
155+
156-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_04\Uninst.isu" -a
156+
%WMIC% product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F8__170__FF}'" call uninstall /nointeractive >> "%LOGPATH%\%LOGFILE%"
157-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_03\Uninst.isu" -a
157+
158-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_02\Uninst.isu" -a
158+
159-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_01\Uninst.isu" -a
159+
160-
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3\Uninst.isu" -a
160+
161
:: 1st line is for updates 23-xx, after 64-bit runtimes were introduced.
162
:: 2nd line is for updates 1-22, before Oracle released 64-bit JRE 6 runtimes
163
%WMIC% product where "IdentifyingNumber like '{26A24AE4-039D-4CA4-87B4-2F8__160__FF}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
164
%WMIC% product where "IdentifyingNumber like '{3248F0A8-6813-11D6-A77B-00B0D0160__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
165
166-
wmic product where "name like '%%J2SE Runtime%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
166+
167-
wmic product where "name like 'Java%%Runtime%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
167+
168-
wmic product where "name like 'JavaFX%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
168+
169
%WMIC% product where "IdentifyingNumber like '{3248F0A8-6813-11D6-A77B-00B0D0150__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
170
171
:: JRE 4
172
echo %CUR_DATE% %TIME%   JRE 4...>> "%LOGPATH%\%LOGFILE%"
173
echo %CUR_DATE% %TIME%   JRE 4...
174
%WMIC% product where "IdentifyingNumber like '{7148F0A8-6813-11D6-A77B-00B0D0142__0}'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
175
176
:: JRE 3
177-
echo %CUR_DATE% %TIME%   Commencing registry cleanup...>> "%LOGPATH%\%LOGFILE%"
177+
178-
echo %CUR_DATE% %TIME%   Commencing registry cleanup...
178+
179-
echo %CUR_DATE% %TIME%   Searching for residual registry keys...>> "%LOGPATH%\%LOGFILE%"
179+
180-
echo %CUR_DATE% %TIME%   Searching for residual registry keys...
180+
181
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_25\Uninst.isu" -a 2>NUL
182-
:: Search MSIExec installer class hive for keys
182+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_24\Uninst.isu" -a 2>NUL
183-
echo %CUR_DATE% %TIME%   Looking in HKLM\software\classes\installer\products...>> "%LOGPATH%\%LOGFILE%"
183+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_23\Uninst.isu" -a 2>NUL
184-
echo %CUR_DATE% %TIME%   Looking in HKLM\software\classes\installer\products...
184+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_22\Uninst.isu" -a 2>NUL
185-
reg query HKLM\software\classes\installer\products /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
185+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_21\Uninst.isu" -a 2>NUL
186-
reg query HKLM\software\classes\installer\products /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
186+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_20\Uninst.isu" -a 2>NUL
187-
reg query HKLM\software\classes\installer\products /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
187+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_19\Uninst.isu" -a 2>NUL
188-
reg query HKLM\software\classes\installer\products /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
188+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_18\Uninst.isu" -a 2>NUL
189
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_17\Uninst.isu" -a 2>NUL
190-
:: Search the Add/Remove programs list (this helps with broken Java installations)
190+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_16\Uninst.isu" -a 2>NUL
191-
echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...>> "%LOGPATH%\%LOGFILE%"
191+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_15\Uninst.isu" -a 2>NUL
192-
echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...
192+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_14\Uninst.isu" -a 2>NUL
193-
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
193+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_13\Uninst.isu" -a 2>NUL
194-
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
194+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_12\Uninst.isu" -a 2>NUL
195-
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
195+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_11\Uninst.isu" -a 2>NUL
196-
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
196+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_10\Uninst.isu" -a 2>NUL
197
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_09\Uninst.isu" -a 2>NUL
198-
:: Search the Add/Remove programs list, x86/Wow64 node (this helps with broken Java installations)
198+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_08\Uninst.isu" -a 2>NUL
199-
echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall...>> "%LOGPATH%\%LOGFILE%"
199+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_07\Uninst.isu" -a 2>NUL
200-
echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall...
200+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_06\Uninst.isu" -a 2>NUL
201-
reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
201+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_05\Uninst.isu" -a 2>NUL
202-
reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
202+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_04\Uninst.isu" -a 2>NUL
203-
reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
203+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_03\Uninst.isu" -a 2>NUL
204-
reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
204+
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_02\Uninst.isu" -a 2>NUL
205
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3.1_01\Uninst.isu" -a 2>NUL
206
%SystemRoot%\IsUninst.exe -f"%SystemDrive%\Program Files\JavaSoft\JRE\1.3\Uninst.isu" -a 2>NUL
207-
:: List the leftover registry keys
207+
208-
echo %CUR_DATE% %TIME%   Found these keys...>> "%LOGPATH%\%LOGFILE%"
208+
209-
echo %CUR_DATE% %TIME%   Found these keys...
209+
210-
echo.>> "%LOGPATH%\%LOGFILE%"
210+
211
%WMIC% product where "name like '%%J2SE Runtime%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
212-
type %TEMP%\java_purge_registry_keys.txt>> "%LOGPATH%\%LOGFILE%"
212+
%WMIC% product where "name like 'Java%%Runtime%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
213-
type %TEMP%\java_purge_registry_keys.txt
213+
%WMIC% product where "name like 'JavaFX%%'" call uninstall /nointeractive>> "%LOGPATH%\%LOGFILE%"
214-
echo.>> "%LOGPATH%\%LOGFILE%"
214+
215
echo %CUR_DATE% %TIME%   Done.
216
217-
:: Backup the various registry keys that will get deleted (if they exist)
217+
218-
:: We do this mainly because we're using wildcards, so we want a method to roll back if we accidentally nuke the wrong thing
218+
219-
echo %CUR_DATE% %TIME%   Backing up keys...>> "%LOGPATH%\%LOGFILE%"
219+
220-
echo %CUR_DATE% %TIME%   Backing up keys...
220+
221-
if exist "%TEMP%\java_purge_registry_backup" rmdir /s /q "%TEMP%\java_purge_registry_backup" >NUL
221+
if %OS_VERSION%==XP(
222-
mkdir %TEMP%\java_purge_registry_backup >NUL
222+
    echo %CUR_DATE% %TIME%   Registry cleanup doesn't work on Windows XP, skipping...>> "%LOGPATH%\%LOGFILE%"
223-
:: This line walks through the file we generated and dumps each key to a file
223+
    echo %CUR_DATE% %TIME%   Registry cleanup doesn't work on Windows XP, skipping...
224-
for /f "tokens=* delims= " %%a in (%TEMP%\java_purge_registry_keys.txt) do (reg query %%a) >> %TEMP%\java_purge_registry_backup\java_reg_keys_1.bak
224+
) else (
225
    :: All other versions of Windows
226
    echo %CUR_DATE% %TIME%   Commencing registry cleanup...>> "%LOGPATH%\%LOGFILE%"
227-
echo %CUR_DATE% %TIME%   Keys backed up to %TEMP%\java_purge_registry_backup\ >> "%LOGPATH%\%LOGFILE%"
227+
    echo %CUR_DATE% %TIME%   Commencing registry cleanup...
228-
echo %CUR_DATE% %TIME%   Keys backed up to %TEMP%\java_purge_registry_backup\
228+
    echo %CUR_DATE% %TIME%   Searching for residual registry keys...>> "%LOGPATH%\%LOGFILE%"
229-
echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it! >> "%LOGPATH%\%LOGFILE%"
229+
    echo %CUR_DATE% %TIME%   Searching for residual registry keys...
230-
echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it!
230+
231
    :: Search MSIExec installer class hive for keys
232-
:: Purge the keys
232+
    echo %CUR_DATE% %TIME%   Looking in HKLM\software\classes\installer\products...>> "%LOGPATH%\%LOGFILE%"
233-
echo %CUR_DATE% %TIME%   Purging keys...>> "%LOGPATH%\%LOGFILE%"
233+
    echo %CUR_DATE% %TIME%   Looking in HKLM\software\classes\installer\products...
234-
echo %CUR_DATE% %TIME%   Purging keys...
234+
    reg query HKLM\software\classes\installer\products /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
235
    reg query HKLM\software\classes\installer\products /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
236-
:: This line walks through the file we generated and deletes each key listed
236+
    reg query HKLM\software\classes\installer\products /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
237-
for /f "tokens=* delims= " %%a in (%TEMP%\java_purge_registry_keys.txt) do reg delete %%a /va /f>> "%LOGPATH%\%LOGFILE%"
237+
    reg query HKLM\software\classes\installer\products /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
238
239-
:: These lines delete some specific Java locations
239+
    :: Search the Add/Remove programs list (this helps with broken Java installations)
240-
:: ! These keys AREN'T backed up (as opposed to the ones above) because here we are specifically targeting known Java keys, whereas
240+
    echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...>> "%LOGPATH%\%LOGFILE%"
241-
::   above we were nuking registry keys based on wildcard searches, so those need backups in case we nuke something we didn't want to.
241+
    echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall...
242
    reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
243-
:: Delete keys for 32-bit Java installations on a 64-bit copy of Windows
243+
    reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
244-
reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Auto Update" /va /f>> "%LOGPATH%\%LOGFILE%"
244+
    reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
245-
reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Plug-in" /va /f>> "%LOGPATH%\%LOGFILE%"
245+
    reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
246-
reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /va /f>> "%LOGPATH%\%LOGFILE%"
246+
247-
reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update" /va /f>> "%LOGPATH%\%LOGFILE%"
247+
    :: Search the Add/Remove programs list, x86/Wow64 node (this helps with broken Java installations)
248-
reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Web Start" /va /f>> "%LOGPATH%\%LOGFILE%"
248+
    echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall...>> "%LOGPATH%\%LOGFILE%"
249-
reg delete "HKLM\SOFTWARE\Wow6432Node\JreMetrics" /va /f>> "%LOGPATH%\%LOGFILE%"
249+
    echo %CUR_DATE% %TIME%   Looking in HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall...
250
    reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "J2SE Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
251-
:: Delete keys for for 32-bit and 64-bit Java installations on matching Windows architecture
251+
    reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java(TM) 6 Update" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
252-
reg delete "HKLM\SOFTWARE\JavaSoft\Auto Update" /va /f>> "%LOGPATH%\%LOGFILE%"
252+
    reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java 7" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
253-
reg delete "HKLM\SOFTWARE\JavaSoft\Java Plug-in" /va /f>> "%LOGPATH%\%LOGFILE%"
253+
    reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /f "Java*Runtime" /s | find "HKEY_LOCAL_MACHINE" >> %TEMP%\java_purge_registry_keys.txt
254-
reg delete "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /va /f>> "%LOGPATH%\%LOGFILE%"
254+
255-
reg delete "HKLM\SOFTWARE\JavaSoft\Java Update" /va /f>> "%LOGPATH%\%LOGFILE%"
255+
256-
reg delete "HKLM\SOFTWARE\JavaSoft\Java Web Start" /va /f>> "%LOGPATH%\%LOGFILE%"
256+
    :: List the leftover registry keys
257-
reg delete "HKLM\SOFTWARE\JreMetrics" /va /f>> "%LOGPATH%\%LOGFILE%"
257+
    echo %CUR_DATE% %TIME%   Found these keys...>> "%LOGPATH%\%LOGFILE%"
258
    echo %CUR_DATE% %TIME%   Found these keys...
259
    echo.>> "%LOGPATH%\%LOGFILE%"
260
    echo.
261-
echo %CUR_DATE% %TIME%   Keys purged.>> "%LOGPATH%\%LOGFILE%"
261+
    type %TEMP%\java_purge_registry_keys.txt>> "%LOGPATH%\%LOGFILE%"
262-
echo %CUR_DATE% %TIME%   Keys purged.
262+
    type %TEMP%\java_purge_registry_keys.txt
263-
echo %CUR_DATE% %TIME%   Registry cleanup done.>> "%LOGPATH%\%LOGFILE%"
263+
    echo.>> "%LOGPATH%\%LOGFILE%"
264-
echo %CUR_DATE% %TIME%   Registry cleanup done.
264+
    echo.
265
266
    :: Backup the various registry keys that will get deleted (if they exist)
267
    :: We do this mainly because we're using wildcards, so we want a method to roll back if we accidentally nuke the wrong thing
268
    echo %CUR_DATE% %TIME%   Backing up keys...>> "%LOGPATH%\%LOGFILE%"
269
    echo %CUR_DATE% %TIME%   Backing up keys...
270
    if exist "%TEMP%\java_purge_registry_backup" rmdir /s /q "%TEMP%\java_purge_registry_backup" >NUL
271
    mkdir %TEMP%\java_purge_registry_backup >NUL
272
    :: This line walks through the file we generated and dumps each key to a file
273
    for /f "tokens=* delims= " %%a in (%TEMP%\java_purge_registry_keys.txt) do (reg query %%a) >> %TEMP%\java_purge_registry_backup\java_reg_keys_1.bak
274
275
    echo.
276
    echo %CUR_DATE% %TIME%   Keys backed up to %TEMP%\java_purge_registry_backup\ >> "%LOGPATH%\%LOGFILE%"
277
    echo %CUR_DATE% %TIME%   Keys backed up to %TEMP%\java_purge_registry_backup\
278
    echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it! >> "%LOGPATH%\%LOGFILE%"
279
    echo %CUR_DATE% %TIME%   This directory will be deleted at next reboot, so get it now if you need it!
280
281
    :: Purge the keys
282
    echo %CUR_DATE% %TIME%   Purging keys...>> "%LOGPATH%\%LOGFILE%"
283
    echo %CUR_DATE% %TIME%   Purging keys...
284
    echo.
285
    :: This line walks through the file we generated and deletes each key listed
286
    for /f "tokens=* delims= " %%a in (%TEMP%\java_purge_registry_keys.txt) do reg delete %%a /va /f>> "%LOGPATH%\%LOGFILE%"
287
288
    :: These lines delete some specific Java locations
289
    :: These keys AREN'T backed up because here we are specifically targeting known Java keys, whereas
290
    :: above we were nuking keys based on wildcards, so those need backups in case we nuke something we didn't want to.
291
292
    :: Delete keys for 32-bit Java installations on a 64-bit copy of Windows
293
    reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Auto Update" /va /f>> "%LOGPATH%\%LOGFILE%"
294
    reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Plug-in" /va /f>> "%LOGPATH%\%LOGFILE%"
295
    reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" /va /f>> "%LOGPATH%\%LOGFILE%"
296
    reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update" /va /f>> "%LOGPATH%\%LOGFILE%"
297
    reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Web Start" /va /f>> "%LOGPATH%\%LOGFILE%"
298
    reg delete "HKLM\SOFTWARE\Wow6432Node\JreMetrics" /va /f>> "%LOGPATH%\%LOGFILE%"
299
300
    :: Delete keys for for 32-bit and 64-bit Java installations on matching Windows architecture
301
    reg delete "HKLM\SOFTWARE\JavaSoft\Auto Update" /va /f>> "%LOGPATH%\%LOGFILE%"
302
    reg delete "HKLM\SOFTWARE\JavaSoft\Java Plug-in" /va /f>> "%LOGPATH%\%LOGFILE%"
303
    reg delete "HKLM\SOFTWARE\JavaSoft\Java Runtime Environment" /va /f>> "%LOGPATH%\%LOGFILE%"
304
    reg delete "HKLM\SOFTWARE\JavaSoft\Java Update" /va /f>> "%LOGPATH%\%LOGFILE%"
305
    reg delete "HKLM\SOFTWARE\JavaSoft\Java Web Start" /va /f>> "%LOGPATH%\%LOGFILE%"
306
    reg delete "HKLM\SOFTWARE\JreMetrics" /va /f>> "%LOGPATH%\%LOGFILE%"
307
308
    echo.
309
    echo %CUR_DATE% %TIME%   Keys purged.>> "%LOGPATH%\%LOGFILE%"
310
    echo %CUR_DATE% %TIME%   Keys purged.
311
    echo %CUR_DATE% %TIME%   Registry cleanup done.>> "%LOGPATH%\%LOGFILE%"
312
    echo %CUR_DATE% %TIME%   Registry cleanup done.
313
    echo.
314
    )
315
316
::::::::::::::::::::::::::::::::
317
:: FILE AND DIRECTORY CLEANUP ::
318
::::::::::::::::::::::::::::::::
319-
	::::::::::::::::
319+
320-
	:: XP version ::
320+
321-
	::::::::::::::::
321+
322-
	:: Get list of users, put it in a file, then use it to iterate through each users profile, deleting the AU folder
322+
323-
	dir "%SystemDrive%\Documents and Settings\" /B > %TEMP%\userlist.txt
323+
324-
	for /f "tokens=* delims= " %%a in (%TEMP%\userlist.txt) DO RMDIR /S /Q "%SystemDrive%\Users\%%a\AppData\LocalLow\Sun\Java\AU">> "%LOGPATH%\%LOGFILE%"
324+
325-
	for /D /R "%SystemDrive%\Documents and Settings\" %%X in (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
325+
326
del /F /Q %WINDIR%\tasks\Java*.job>> "%LOGPATH%\%LOGFILE%"
327-
	::::::::::::::::::::::::::
327+
328-
	:: Vista and up version ::
328+
329-
	::::::::::::::::::::::::::
329+
330-
	:: Get list of users, put it in a file, then use it to iterate through each users profile, deleting the AU folder
330+
331-
	dir %SystemDrive%\Users /B > %TEMP%\userlist.txt
331+
332-
	for /f "tokens=* delims= " %%a in (%TEMP%\userlist.txt) DO RMDIR /S /Q "%SystemDrive%\Users\%%a\AppData\LocalLow\Sun\Java\AU">> "%LOGPATH%\%LOGFILE%"
332+
333-
	:: Get the other JRE directories
333+
334-
	for /D /R "%SystemDrive%\Users" %%X in (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
334+
335-
	)
335+
336
net stop jusched>> "%LOGPATH%\%LOGFILE%"
337
sc delete jusched>> "%LOGPATH%\%LOGFILE%"
338
"%ProgramFiles(x86)%\Java\jre6\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
339
"%ProgramFiles(x86)%\Java\jre7\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
340
"%ProgramFiles%\Java\jre6\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
341
"%ProgramFiles%\Java\jre7\bin\jqs.exe" -disable>> "%LOGPATH%\%LOGFILE%"
342
"%ProgramFiles(x86)%\Java\jre6\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
343
"%ProgramFiles(x86)%\Java\jre7\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
344
"%ProgramFiles%\Java\jre6\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
345
"%ProgramFiles%\Java\jre7\bin\jqs.exe" -unregister>> "%LOGPATH%\%LOGFILE%"
346
msiexec.exe /x {4A03706F-666A-4037-7777-5F2748764D10} /qn /norestart
347
echo.
348
349
:: Nuke 32-bit Java installation directories
350
echo %CUR_DATE% %TIME%   Removing "%ProgramFiles(x86)%\Java\jre*" directories...>> "%LOGPATH%\%LOGFILE%"
351-
IF '%REINSTALL_JAVA%'=='yes' (
351+
352-
	echo %CUR_DATE% %TIME% ! Variable "REINSTALL_JAVA" was set to 'yes'. Now installing %JAVA_BINARY%...>> "%LOGPATH%\%LOGFILE%"
352+
353-
	echo %CUR_DATE% %TIME% ! Variable "REINSTALL_JAVA" was set to 'yes'. Now installing %JAVA_BINARY%...
353+
354-
	"%JAVA_LOCATION%\%JAVA_BINARY%" %JAVA_ARGUMENTS%
354+
355-
	java -version
355+
356-
	echo Done.>> "%LOGPATH%\%LOGFILE%"
356+
357-
	)
357+
358
echo %CUR_DATE% %TIME%   Removing "%ProgramFiles%\Java\jre*" directories...
359
for /D /R "%ProgramFiles%\Java\" %%X in (j2re*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
360
for /D /R "%ProgramFiles%\Java\" %%X in (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
361
rmdir /S /Q "%ProgramFiles%\JavaSoft\JRE">> "%LOGPATH%\%LOGFILE%"
362
363
:: Nuke Java installer cache ( thanks to reddit.com/user/cannibalkitteh )
364
echo %CUR_DATE% %TIME%   Purging Java installer cache...>> "%LOGPATH%\%LOGFILE%"
365
echo %CUR_DATE% %TIME%   Purging Java installer cache...
366
ver | find "XP"
367
IF %ERRORLEVEL%==0 (
368
    ::::::::::::::::
369
    :: XP version ::
370
    ::::::::::::::::
371
    :: Get list of users, put it in a file, then use it to iterate through each users profile, deleting the AU folder
372
    dir "%SystemDrive%\Documents and Settings\" /B > %TEMP%\userlist.txt
373
    for /f "tokens=* delims= " %%a in (%TEMP%\userlist.txt) DO RMDIR /S /Q "%SystemDrive%\Users\%%a\AppData\LocalLow\Sun\Java\AU">> "%LOGPATH%\%LOGFILE%"
374
    for /D /R "%SystemDrive%\Documents and Settings\" %%X in (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
375
) ELSE (
376
    ::::::::::::::::::::::::::
377
    :: Vista and up version ::
378
    ::::::::::::::::::::::::::
379
    :: Get list of users, put it in a file, then use it to iterate through each users profile, deleting the AU folder
380
    dir %SystemDrive%\Users /B > %TEMP%\userlist.txt
381
    for /f "tokens=* delims= " %%a in (%TEMP%\userlist.txt) DO RMDIR /S /Q "%SystemDrive%\Users\%%a\AppData\LocalLow\Sun\Java\AU">> "%LOGPATH%\%LOGFILE%"
382
    :: Get the other JRE directories
383
    for /D /R "%SystemDrive%\Users" %%X in (jre*) DO RMDIR /S /Q "%%X">> "%LOGPATH%\%LOGFILE%"
384
    )
385
386
:: Miscellaneous stuff, sometimes left over by the installers
387
echo %CUR_DATE% %TIME%   Searching for and purging other Java Runtime-related directories...>> "%LOGPATH%\%LOGFILE%"
388
echo %CUR_DATE% %TIME%   Searching for and purging other Java Runtime-related directories...
389
echo.
390
del /F /Q %SystemDrive%\1033.mst>> "%LOGPATH%\%LOGFILE%"
391
del /F /S /Q "%SystemDrive%\J2SE Runtime Environment*">> "%LOGPATH%\%LOGFILE%"
392
echo.
393
394
echo %CUR_DATE% %TIME%   File and directory cleanup done.>> "%LOGPATH%\%LOGFILE%"
395
echo %CUR_DATE% %TIME%   File and directory cleanup done.
396
echo. >> "%LOGPATH%\%LOGFILE%"
397
echo.
398
399
:: Check if we wanted to install a new version of the JRE. If we didn't, then go ahead and exit.
400
IF %REINSTALL_JAVA%==yes (
401
    echo %CUR_DATE% %TIME% ! Variable "REINSTALL_JAVA" was set to 'yes'. Now installing %JAVA_BINARY%...>> "%LOGPATH%\%LOGFILE%"
402
    echo %CUR_DATE% %TIME% ! Variable "REINSTALL_JAVA" was set to 'yes'. Now installing %JAVA_BINARY%...
403
    "%JAVA_LOCATION%\%JAVA_BINARY%" %JAVA_ARGUMENTS%
404
    java -version
405
    echo Done.>> "%LOGPATH%\%LOGFILE%"
406
    )
407
408
:: Done.
409
echo %CUR_DATE% %TIME%   Registry hive backups: %TEMP%\java_purge_registry_backup\>> "%LOGPATH%\%LOGFILE%"
410
echo %CUR_DATE% %TIME%   Registry hive backups: %TEMP%\java_purge_registry_backup\
411
echo %CUR_DATE% %TIME%   Log file: "%LOGPATH%\%LOGFILE%">> "%LOGPATH%\%LOGFILE%"
412
echo %CUR_DATE% %TIME%   Log file: "%LOGPATH%\%LOGFILE%"
413
echo %CUR_DATE% %TIME%   JAVA NUKER COMPLETE. Recommend rebooting and washing your hands.>> "%LOGPATH%\%LOGFILE%"
414
echo %CUR_DATE% %TIME%   JAVA NUKER COMPLETE. Recommend rebooting and washing your hands.
415
416
:: Return exit code to SCCM/PDQ Deploy/PSexec/etc
417
exit /B %EXIT_CODE%