The Java version for the Cold Fusion 11 in the Development and Test environments is:
Java Version 1.7.0_51
The Java version for the Cold Fusion 11 in the production environment is
Java Version 1.8.0_25
Is it possible to update the Cold Fusion Java version in the Development and Test enviroments with the version rom the production install without installing the build used in the production install?
If so, how would this be done?
There are a few blogs and knowledge bases online that explain it. Here is a quick run down:
- ColdFusion stores the path of its Java runtime in /cfusion/bin/jvm.config. Make a backup of this file! That way, if something goes wrong, you can simply stop ColdFusion, restore that file, restart ColdFusion, and you'll be back up and running as if you'd have changed nothing at all.
- Download JRE 1.8.0_25 (or JDK 1.8.0_25) on to your ColdFusion server. Make sure you pick the right version for your OS. If you are using 32bit ColdFusion you must install the 32bit JRE, and if you are using 64bit ColdFusion you must install the 64bit JRE. (Pay attention to the 32bit versus 64bit decision, on a 64bit machine the page may default to 32bit if it detects you are using a 32bit web browser).
- Once you have downloaded JRE 1.8, install it on your server.
- Note the JRE 1.8 installation folder, you'll need the full path to it.
- Log in to ColdFusion Administrator.
- Go to the Server Settings > Java and JVM page.
- Replace the Java Virtual Machine Path with the path to the newly installed JRE 1.8 (you can also click Browse Server to locate the folder), then click Submit Changes.
- You will be instructed to restart ColdFusion, so do that.
- Once ColdFusion has restarted, log back into the ColdFusion Administrator and go to Server Settings > Settings Summary. In the JVM Details section Java Version should indicate that you are running 1.8.0_25
What is the location to download the JRE 1.8.0_25 ( JDK 1.8.0_25) ?
You can install it where ever you want. You use the coldfusion admin to reference the path (Step 7).
Be aware that Java 1.8 uses memory completely different than 1.7. Enough that the jvm.config has a small change in it's memory setting so that the same file may not work between the two. Here is an article.
Essentially, as part of your jvm.config file: The PermSize and MaxPermSize JVM arguments are ignored and a warning is issued if present at start-up. A new flag is available (MaxMetaspaceSize), allowing you to limit the amount of native memory used for class metadata. If you don’t specify this flag, the Metaspace will dynamically re-size depending of the application demand at runtime.
From what I've read this MetaSpace setting is supposed to cure us of the old "heapspace" out of memory errors. However, I've found that not to be the case. I had to play with this setting for CF11 to avoid "MetaSpace" errors. See my posting here.
Hopefully you will fair better.