I have received the error message "Java update did not complete. Error Code: 1603" for months whenever I tried to update the Java installation on a PC running Windows 7 Professional 64-bit.
The error would come up at the end of the installation after Java files were downloaded and the software was seemingly installed on the operating system.
I first thought that this was related to the online installer only and tried the offline installer instead, but the error message remained.
The core difference between online and offline installer is how files are made available. If you select the online installer, only a small stub is downloaded at first. When you run it, all required files get downloaded and installed.
The offline installer on the other hand is linked to a particular version of Java but works on its own without extra downloads.
The full error prompt read:
Java update did not complete
Error Code: 1603
Please refer to the Java Help Center for troubleshooting information or contact your system administrator.
The help center was not very helpful. It did list one entry for error 1603 but revealed no information other than it is indicating "that an installation did not complete" and that the error is under investigation.
I decided to check the Java installation on the computer in question and noticed that Java was not installed. What was installed however was the Java SDK; more precisely, the 64-bit Java SDK.
Assuming that this could have been the issue all along, I decided to download the 64-bit version of Java installed from the Java download site and install it instead.
Turns out, it went through without issues and the most recent version of Java was installed on the target machine.
While I cannot speak in general terms, it appears as if you cannot install a 32-bit version of Java on a system with a 64-bit Java SDK.
The same is likely true if you have installed a 64-bit version of Java on the system and try to update it using the 32-bit version of Java.
The error may appear in other circumstances as well. Here are a couple of suggestions to resolve it if a 32-bit 64-bit conflict is not the issue on your end: