15 June 2013

The registry refers to a nonexistent java runtime installation

Installing the EID viewer software for Belgian electronic identity card and got this error:

The registry refers to a nonexistent java runtime installation
Google showed some minecraft gamers having the same problem, so here's how I solved it on Windows 7.
Open the registry editor (regedit.exe).
Go to Computer\HKEY_LOOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
For each version under this path, verify if the paths for the JavaHome and RuntimeLib variables are correct.
  • RuntimeLib should refer to an existent jvm.dll file, 
  • JavaHome should be the start of this path with the "\bin\client\jvm.dll" part removed. 
For each version of Java you have, you need to do this twice (once for the particular build you have (example 1.7.0_04) and once for the base version (example 1.7). Mine (but take care, I installed to a custom location) are:
  • JavaHome C:\java\jre
  • RuntimeLib C:\java\jre\7\bin\jvm.dll
I got the error because I moved the software to another directory after installation.