Running KNIME from system Java, instead of the bundled copy of Java

I am trying to run KNIME using the copy of the Java Runtime Environment (JRE) that is installed on my system, rather than the copy of JRE that come bundled with KNIME. I need to do this because I am configuring a machine for a very security-conscious organization that only wants to allow a particular version of Java (v. 8 build 25) to be installed on its equipment.

I am running KNIME v. 3.3.1 on Windows 7. The system JRE is version 8 build 121.

One of the KNIME FAQs suggests that KNIME will begin using the system version of Java as soon as the directory <path_to_KNIME>/jre is removed or renamed. "By removing or renaming this folder, you will disable this JRE and Eclipse will (try to) use the JRE installed on your operating system." This approach did not, alas, work for me: renaming the directory and launching KNIME generated the following error message: "... No Java virtual machine was found after searching the following locations:

C:\Program Files\KNIME\jre\bin\javaw.exe

javaw.exe in your current PATH"

In fact, the program javaw.exe is installed in the directory C:\Program Files (x86)\Java\jre1.8.0_121\bin.  But apparently KNIME could not find this.

I next tried editing my system PATH (using these instructions) to add the directory C:\Program Files (x86)\Java\jre1.8.0_121\bin. Launching KNIME now generates a new error: "Error: missing 'server' JVM at 'C:\Program Files (x86)\Java\jre1.8.0_121\bin\server\jvm.dll'. Please install or use the JRE or JDK that contains these missing components."

So apparently, KNIME is now able to find the file javaw.exe, but is not able to find one or more other components that it needs to run Java.

(There is in fact a file named jvm.dll in the directory C:\Program Files (x86)\Java\jre1.8.0_121\bin\client. I tried copying this ~\client directory to a new directory C:\Program Files (x86)\Java\jre1.8.0_121\bin\server. Launching KNIME then generates a different fatal error.)

I am now stuck. I can’t see how to get KNIME to recognize and use the system-installed version of Java RE. Can anyone advise me how to make this work?

Using any other Java version than the one bundled with KNIME is not supported! As KNIME is a local application that can do anything on the system that any other local application can do (which is - everything) it doesn't make sense at all to require a different version for security reasons.

I was spending time already on the same issue. Not for security, but for performance. On my Macbook Pro M1 I’m using AdoptOpenJDK and all Java Applications are running much faster and smoother. Compared to other Java Applications Knime feels very sluggish. I’m quite sure training could also benefit from it. So there NO chance for getting this?

Best Regards from Black Forest

KNIME is using AdoptOpenJDK/Temurin as well.

Will it also automatically use the arm version for the M1 Mac? Thanks

There is no native version of KNIME Analytics Platform for ARM M1 yet. We plan to release it with 4.7 in fall this year.

1 Like

Cool, good to hear! Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.