ColdFusion 10 support with Java 8

With Update 14 for ColdFusion 10, Java 8 is supported.

If you are using ColdFusion Web services you will have to do a one-time change manually.

You should copy tools.jar manually from {JDK8_Home}/lib to {cf_install_home}/cfusion/lib/. ColdFusion Web Services will fail if this is not done. Only JDK contains tools.jar not the jre. You don’t have to install JDK on the machine where ColdFusion is installed. You can just have jre 8 on this machine and get tools.jar from any other machine’s JDK installation.

And also make sure that the earlier stubs are cleared fom {cf_install_home}/cfusion/stubs/ to get the newly compiled classes.

Originally ColdFusion 10 was shipped with jre 1.6. With that build we released tools.jar of jdk1.6.

For Windows there was a refreshed installer release. With this jre include was 1.7 and so we have shipped tools.jar of jdk1.7.

Since, we are not releasing new installers and still if you want ColdFusion to run on jre 1.8.

Unless you want Web services, it is not necessary that you have to upadte it.

The reason why we have not shipped this through updater is that it can break the existing users those who have n’t upgraded their jre.

24 Responses

  1. @Krishna,

    Perhaps I am just being dense and/or need another cup of coffee this morning, but this raises several questions for me that I am hoping you can answer or clarify for me:

    1. On a server with the Java 8 JDK (rather than the JRE) installed, are you stating that the tools.jar file in ./cfusion/lib/ should be replaced with the tools.jar file from the JDK?

    2. What is the source of the tools.jar currently in place in ./cfusion/lib/ for existing ColdFusion installs? Is that a copy of something bundled with earlier Java 6/7 JDKS? On our Java 7-based servers, should we be updating/replacing that ./cfusion/lib/tools.jar as we also update the JDK installed on those same servers so that we have some assurance of consistency/currency? When we move to Java 8 for our servers, should we also be keeping this file updated as we update to new versions of Java 8?

    3. This is more of an observation with a question: I’m hoping there is a sound technical reason for the approach I think you are advocating here, but in general it seems to me like a dodgy (or at least error-likely) practice to be moving files from one system’s JDK installation to another system’s JRE installation. Perhaps you can elaborate on why this is a good thing?

    4. I’m not sure what that final sentence means or is trying to say. Can you clarify?

  2. @Ron

    Re 2: I just checked on my OS X setup. In CF10 (server setup), the tools.jar is 1.6.0_37 from Apple. In CF11 (server setup), it’s 1.6.0_18 from Sun. Frankly, that’s odd to me (at best). On a CF 9 / JRUN setup on this machine, there’s no tools.jar at all — that might be due to the architecture of that particular setup.

    Re 3: The reason here would be that Adobe wants CF to run on a JRE only but needs some functionality from the JDK tools.jar at runtime. My guess is along the lines of packaging and compiling.

    Now – if that’s the case, there are not too many options. They have to put something in the ACF or the container’s class path to make it work. The big issue with this approach though is that it leaves a lot of room for issues and questions (as we see here).

    I think Adobe needs to document this properly in a tech note and provide clear instructions what to do if users have a JDK installed. I’d also be interested in the implication of running a Java 6 JDK library with Java 7 or 8 in regards to potential security issues and Java end of life.

  3. @Kai: I checked mine on a box I have not yet updated to CF10u14, and it appears to match the Java 1.7.O_51 JDK which dates from 2013-12, but I know that tools.jar file has been updated in each Java 7 JDK update in the intervening period. Seems like this does raise questions about what they will be bundling in future updates (particularly if they are in fact including a Java 7 JDK jar which will/may break installs running on Java 8). If Adobe is going to bundle a JDK jar solely so users aren’t required to install the JDK, then I feel like they have a responsibility to keep that JAR updated (yet another argument in favor of more frequent updates from Adobe, I think).

    And I agree completely with you last point about a tech note and clear instructions and documentation of implications.

  4. OK, as of 2014-10-16 15:30 US-MDT, I see that the original blog entry has been edited, which IMO is a clumsy way of attempting to answer questions posed within the comment stream. My questions about the process for keeping the tools.jar file current as the JRE/JDK on the server is updated still stand unanswered and my question #4 is rendered moot at this point as the sentence in question was removed when the blog post was edited.

  5. @Ron Stewart
    1. Right. tools.jar should still be copied to cfusion/lib

    2. This is applicable only if you are using Web services from ColdFusion and you are upgrading to new version of jre.
    For minor version upgrades, it is not required to change. just contains library to compile axis stubs into classes. So, it doesn’t matter from which machine it is taken. Only the version of JDK that it is taken from matters. Major version of ColdFusion’s jre and tools.jar that is under cfusion/lib should be of the same version. ColdFusion full installation takes care of all these things. So, if you are upgrading jre later, you would need to do this.

    4.I have updated the blog to be more clear on that.

  6. Does the tools.jar need to be copied to lib folder for each instance on a multi-instance server? (e.g. {cf_install_home}/{instance_name}/lib/) Seems like it should to me.

  7. I have installed update 14 but no other Java updates, JRE’s or JDK’s. I am now getting service unavailable exceptions trying to invoke web services now (Cannot perform web service invocation … The fault returned when invoking the web service operation is: org.apache.axis2.AxisFault: Transport error: 503 Error: Service Unavailable). Do I need to update tools.jar?

  8. Further clarification: server is WS2k8, IIS7.5 with CF10 and Java 7 JRE only. From what I am reading, my understanding is I should not have to replace tools.jar but web services have stopped working after update 14.

  9. I tried deleting configured web services from administrator and the error has changed to:
    Cannot perform web service invocation …
    The fault returned when invoking the web service operation is:
    faultCode: {}Server.userException
    faultString: Unrecognized SSL message, plaintext connection?
    {} Unrecognized SSL message, plaintext connection?

    I have also tried uninstalling and reinstalling our SSL certificates from the keystore but same error exists.

    Any explanation of this error message and possible solutions would be greatly appreciated.

  10. This has been resolved now. I had to remove the JVM arguments adding our proxy settings in the jvm.config file for the server to be able to find and download the available updates. Is there any way to configure JVM to use proxy for making external requests but bypass for responding to internal requests?

  11. Does anyone know the differences between Java 1.7 and Java 1.8 in regards to how ColdFusion uses the JVM arguments? I have noticed some differences in website performance after applying Java 1.8 so I wanted to make sure my JVM arguments were setup correctly. I did find this post from earlier this year from Carl H about something called metaspace but it’s unclear to me if any changes are necessary.

  12. > The reason why we have not shipped this through updater is that it can break the existing users those who have n’t upgraded their jre.

    Can the updater not detect which JRE the CF instance is running on? (It can).

    Am I missing something?


  13. I am unable to access cfadmin. I am running CF10. I installed Java 8 a few weeks ago and it has been running fine up until yesterday when out of nowhere, I was unablet o access datasources and unable to log in to cfadmin. Now I am getting this error after changing the java home in jvm.config to the JRE of jave 8: HTTP Status 500 – coldfusion.server.ServiceFactory$ServiceNotAvailableException: The Runtime service is not available. How do I update Cf so that this will work? I have the mandatory update installed.

  14. Hi,

    I was looking to update the JDK on my server which is running CF 10 update 16, untill last evening I was running with Jre 1.6, however this morning I upgdared to 1.7 (not by installing the JDk on server but just copying the library and class files ) placed the files in C:CF10jre and mapped the path in CF instance in JVM, so far no issue, but I wondering will I have any issue bcoz I havent copied the tools.jar file, please suggest

  15. Today Java 8 update 65/66 are out. Can we install this and leave the Java 1.7 tools.jar in our existing folder?

    There has been no update from Adobe on this new Java 8 release.

  16. All, thanks for the info, especially the tip about tools.jar.

    Charlie, for CF 10 I find that I need the JDK only for the keytool program that comes with it. It manages the java keystore (cacerts) file.

    And since CF only needs the JRE, I have installed the jdk to another location and copied the jre folder from there into the Coldfusion10 folder overwriting the existing JRE.

Leave a reply