Search code examples
javaelki

Error opening registry key ‘Software\JavaSoft\JRE’ while installing elki


I am trying to download ELKI. So as per the readme file I run the elki.bat( I am using windows 10 ). But I get the following java related errors :

Error: opening registry key ‘Software\JavaSoft\JRE’

Error: could not find java.dll

Error: Could not find Java SE Runtime Environment.

  • I have searched all the sources that address this problem.
  • I uninstalled the previous version and reinstalled JDK ( I currently have jdk 11.0.1 installed ). The "java -version" command to check the version runs just fine.
  • I have set the java path and classpath.

The README file says that the jar files from the elki and dependency folder must be included in the path. I've done that as well, but the error persists.

Please help!


Solution

  • ELKI doesn't know what the Windows registry is.

    The error supposedly originates from Java - so there is something broken in your Windows Java installation. Others have reported the same error when running java -version. I'd expect other Java programs to be affected, too: if you search for the error message, you will mostly find it with other software, e.g., here: Install Java 11 OpenJDK on Windows (a system path issue)

    I suggest that you (1) uninstall all Java versions, (2) run "java -version" to make sure you really removed all, (3) reboot, Windows needs this to reset some system variables, (4) reinstall the Java version(s) you intend to use (5) reboot once more, in case Java installation changed the system variables once more. If that worked, please report so.

    Nevertheless, the ELKI 0.7.1 release will not work with Java 11. You will need to compile the latest version from Github, because of subtle incompatibilities in Java. These are already fixed in ELKI (removing a cast that no longer worked, but also was not necessary), there just has not been a new release yet, sorry. It is developer software, users are expected to use the source. Right now, ELKI is only well tested with Java 8, because of the module mess introduced in Java 9, and not all dependencies being ported to the module system yet.