# [SOLVED] How to Fix the Java Error 1723!



## Zethioth

For those of you that don't know about Java Error 1723, let me explain.

Java Error 1723 states this:

Error 1723. There is a problem with this Windows Installer package. A DLL required for this install could not be run. Contact your support personnel or package vendor.

This error can be received while both trying to Install or Uninstall any Java download. Therefore, if you have an old or corrupt Java, you may encounter issues installing/uninstalling it. This problem has been on my laptop for a year. 
I was able to get some Java updates to install, but I could never remove some older ones. 

For some reason, Java/Oracle doesn't even know how to fix this problem. (Error 1723. There is a problem with this Windows installer package)

I would like to share my fix which I hope will be picked up by Bing and Google so others could try it. 

-------------++++-------------====-------------++++-------------

My Fix:

WARNING: You will have to make changes to your registry. I AM NOT RESPONSIBLE for any errors on your computer you may encounter. If you follow my directions exactly, you shouldn't have to worry.

Before we start, remove all versions of Java on your system, if possible. Delete all folders manually that are Java related. (C:/Program Files/Java and/or C:/Program Files x86/Java)
Second, if you like, make a registry backup. You can do this with a variety of programs.


1. Open regedit. (run>regedit or search regedit)
2. Expand HKEY_LOCAL_MACHINE
3. Expand SOFTWARE
4. Expand Microsoft
5. Expand Windows
6. Expand CurrentVersion
7. Expand Uninstall
8. You will a few files that look like this:
{Mix-Of-Numbers-Letters-And-Dashes}

Single Click on the very top one. Go through all of the files that look like what I wrote above. If you find anything that says Java, Oracle, or has the destination of the Java Install, delete that registry folder. In my case, it was these two:
{64A3A4F4-B792-11D6-A78A-00B0D0130200}
{26A24AE4-039D-4CA4-87B4-2F86416021FF}

9. Open Programs and Feature or Add or Remove Programs and verify that Java is now gone. If so, proceed to Java.com and download the latest Java.

It worked for me:

Installing Java After Following My Fix

-------------++++-------------====-------------++++-------------

If it does not work for you, I am deeply sorry. Do not be mad at yourself, be made the crappy coders who created Java. If I install a program on my computer, I expect it to be able to uninstall. This ticked me off at Java.


----------



## jenae

Hi, well I admire you for looking and coming up with what worked for you, well done. Java issues have taxed us for many a year and even though you found the CLSID, and so you have more of an idea:- (From File reference)

A Class ID (CLSID) is a 128 bit (large) number that represents a unique id for a software application or application component. Typically they are displayed like this "{AE7AB96B-FF5E-4dce-801E-14DF2C4CD681}". 

You can think of a CLSID as a "social security number" for a piece of software, or a software component. 

What are they used for? 
CLSIDs are used by Windows to identify software components without having to know their "name". They can also be used by software applications to identify a computer, file or other item. 

Where do they come from? 
Microsoft provides a utility (program) called GUIDGEN.EXE that generates these numbers. They are generated by using the current time, network adapter address (if present) and other items in your computer so that no two numbers will ever be the same. 

So you managed to find some and remove them NOW you have the solution to Java installs/uninstalls?

I wish it was this easy so you know where you are heading this is a script to remove Java (and it does not always work) you might note it requires a little bit more work:-


Option Explicit

Dim wshShell, fso, strLogFile, ts, strTempDir, strTempISS, strUnString, tsIn, blFound
Dim strUninstLine, CLSID, search5, search6, search7, strJRE1, strDisplayName, strDisplayVersion
Dim strPublisher, strUninstallString, strJREUninstallString, strJREDisplayName
Dim search1, search2, search3, search4, strJREUninstallStringNEW, ret, strUninstCMD
Dim tsISS, strSetupexe, qVal, strComputername

qVal = 0

Set wshShell = CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 

strComputername = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")

If Not fso.FolderExists("C:\Logs") Then fso.CreateFolder("C:\Logs")
strLogFile = "C:\Logs\Java_Uninstall_" & strComputername & ".log"
Set ts = fspenTextFile(strLogFile, 8, True)

ts.WriteLine String(80, "_") 
ts.WriteLine String(80, "¯") 
ts.WriteLine Now() & " - Java Runtime(s) uninstallation"
ts.WriteLine String(80, "_") & vbCrlf

'# Generate Registry extracts from 'Uninstall' keys.
PreFlight()

'# Kill Java Processes
KillProc()

strTempDir = wshShell.ExpandEnvironmentStrings("%temp%")
strTempISS = strTempDir & "\iss" 
strUnString = " -s -a /s /f1" 
Set tsIn = fspenTextFile(strTempDir & "\uninstall.tmp", 1) 

If Not fso.FolderExists(strTempISS) Then fso.CreateFolder(strTempISS) 

blFound = False

Do While Not tsIn.AtEndOfStream
strUninstLine = tsIn.ReadLine 
CLSID = Mid(strUninstLine, 73, 38) 
search5 = Instr(strUninstLine, "JRE 1") 
search6 = Instr(strUninstLine, "]") 
If search5 > 0 AND search6 > 0 Then 
strJRE1 = Replace(Mid(strUninstLine, search5, search6),"]","") 
End If 

On Error Resume Next

strDisplayName = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & CLSID & "\DisplayName") 
strDisplayVersion = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & CLSID & "\DisplayVersion") 
strPublisher = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & CLSID & "\Publisher") 
strUninstallString = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & CLSID & "\UninstallString") 

strJREUninstallString = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strJRE1 & "\UninstallString") 
strJREDisplayName = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strJRE1 & "\DisplayName") 

On Error Goto 0

'Search for presence of Java and Sun in DisplayName and Publisher 
search1 = Instr(1, strDisplayName, "Java", 1) 
search2 = Instr(1, strPublisher, "Sun", 1) 
search3 = Instr(1, strDisplayName, "J2SE", 1) 
search4 = Instr(1, strUninstallString, "setup.exe", 1)
search7 = InStr(1, strDisplayName, "Development", 1) + InStr(1, strDisplayName, "Java DB", 1)

If strJREUninstallString <> "" Then
blFound = True
'# JRE 1 found
strJREUninstallStringNEW = Replace(strJREUninstallString," -f"," -s -a /s /f") 
ts.WriteLine Now() & " - " & strJREDisplayName
ts.WriteLine Now() & " - Uninstall String sent: " & strJREUninstallStringNEW 
ret = wshShell.Run(strJREUninstallStringNEW , 0, True)
ts.WriteLine Now() & " - Return: " & ret
If ret <> 0 And ret <> 3010 Then qVal = 1

ElseIf search7 = 0 And search1 > 0 Or search3 > 0 And search2 > 0 Then
blFound = True
strUninstCMD = "msiexec.exe /x " & CLSID & " /norestart /qn"

If search4 > 0 Then
'# Old InstallShield setup found
Set tsISS = fspenTextFile(strTempISS & "\" & CLSID & ".iss", 2, True)

'Create Response file for any Java Version 
tsISS.WriteLine "[InstallShield Silent]" 
tsISS.WriteLine "Version=v6.00.000" 
tsISS.WriteLine "File=Response File" 
tsISS.WriteLine "[File Transfer]" 
tsISS.WriteLine "OverwrittenReadOnly=NoToAll" 
tsISS.WriteLine "[" & CLSID & "-DlgOrder]" 
tsISS.WriteLine "Dlg0=" & CLSID & "-SprintfBox-0" 
tsISS.WriteLine "Count=2" 
tsISS.WriteLine "Dlg1=" & CLSID & "-File Transfer" 
tsISS.WriteLine "[" & CLSID & "-SprintfBox-0]" 
tsISS.WriteLine "Result=1" 
tsISS.WriteLine "[Application]" 
tsISS.WriteLine "Name=Java 2 Runtime Environment, SE v1.4.0_01"
tsISS.WriteLine "Version=1.4.0_01"
tsISS.WriteLine "Company=JavaSoft"
tsISS.WriteLine "Lang=0009"
tsISS.WriteLine "[" & CLSID & "-File Transfer]"
tsISS.WriteLine "SharedFile=YesToAll"
tsISS.Close

strSetupexe = Left(strUninstallString, search4 + 9) 
strUninstCMD = strSetupexe & strUnString & Chr(34) & strTempISS & "\" & CLSID & ".iss" & Chr(34) 
End If

ts.WriteLine Now() & " - " & strDisplayName & " - Version: " & strDisplayVersion
ts.WriteLine Now() & " - Uninstall String sent: " & strUninstCMD
ret = wshShell.Run(strUninstCMD , 0, True) 
ts.WriteLine Now() & " - Return: " & ret
If ret <> 0 And ret <> 3010 Then qVal = 1
End If 

Loop

tsIn.Close

If Not blFound Then
ts.WriteLine Now() & " - No Java Runtime versions found installed."
qVal = 99
End If

ts.WriteLine String(80, "_") 
ts.WriteLine String(80, "¯") 
ts.Close
fso.DeleteFolder(strTempISS)
fso.DeleteFile(strTempDir & "\uninstall.tmp")

WScript.Quit(qVal)

Sub PreFlight()
'# Creates temp files containing extracts from registry 'Uninstall' keys.
Dim wshShell, fso, sTemp
Set wshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
sTemp = wshShell.ExpandEnvironmentStrings("%temp%")
wshShell.Run "REGEDIT /E %temp%\registry.tmp HKEY_LOCAL_MACHINE\SOFTWARE\microsoft\windows\currentversion\uninstall", 0, True
wshShell.Run "cmd /c type %temp%\registry.tmp | find /i ""{"" | find /i ""}]"" > %temp%\uninstall.tmp ", 0, True
wshShell.Run "cmd /c type %temp%\registry.tmp | find /i ""JRE 1"" >> %temp%\uninstall.tmp ", 0, True
If Not fso.FileExists(sTemp & "\uninstall.tmp") Then
ts.WriteLine Now() & " - No input - %temp%\uninstall.tmp Reg extract not created."
ts.WriteLine String(80, "_") 
ts.WriteLine String(80, "¯") 
ts.Close
WScript.Quit(1)
End If
End Sub

Sub KillProc()
'# kills jusched.exe and jqs.exe if they are running. These processes will cause the installer to fail.
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run "Taskkill /F /IM jusched.exe /T", 0, True
wshShell.Run "Taskkill /F /IM jqs.exe /T", 0, True
End Sub


----------



## Zethioth

I'm no Tech Genius, but all I know is that I was able to fix the problems with the steps I listed above and thought it could help someone else.

I thank you for that bit of knowledge you provided me. As for continuing to find the actual cause of the problem, I am not the one who can do that. I have no degree in Computer Science/Software Engineering/Hardware Engineering like most of you do. I am just your Average 16 year old who is a fan of computers and has a decent knowledge of them.


----------



## Zethioth

Do you have a degree in something computer related? I would love to know where you get your knowledge from.


----------



## joeten

Not everyone has a degree and to be honest it is not always required if you look around the site and the members, you will find many who have certification in different areas of computer related areas from A+ to Microsoft and programming etc,A lot of what people here know is from hands on experience working in the field. Add to that many hours of investigation and study.


----------

