Blog

Brad Wood

December 21, 2017

Spread the word


Share your thoughts

As Christmas draws near, remember to pick up batteries for all those toys.  There's nothing worse than a Christmas morning with not enough AA's.  In fact, there's solid evidence that this entire holiday is a ruse to keep battery manufacturers in business.  They're probably kahoots with the peppermint latte guys.  Anyhoo, let's talk quickly about using custom versions of Java with CommandBox.  

Custom Java Version

Some people (who will remain nameless) are on older versions of ColdFusion 9 (you know who you are!) and they are stuck back in the dark ages of Java 1.7.  Other people are already in the future with Java 9 on their machine, but whoops -- nothing actually works on Java 9 yet!  No to worry, we've got a way for you to dial in just what you need.

For the CLI

The core CommandBox CLI needs Java 7 or 8 right now.  Whether you're on *nix or Windows, the CLI will employ several kinds of dark magic to divine what the current installed version of Java is on your machine.  If your default Java version is not what you want and you don't want to change it (or perhaps you don't even have Java installed!) then you can hint to the CLI by simply placing a folder named "JRE" in the same directory as the box binary file.  When CommandBox starts, it looks for this folder and uses it as the JRE if it exists.  Inside the "JRE" folder should be a "bin" folder and the "bin" folder should have the "java" binary.  Double check that if it's not getting picked up for some reason.  You might just have an extra folder nested in there.

For your server

By Default, your servers start using the same version of Java that the CommandBox CLI is using. For people needing to run Adobe ColdFusion 9, or who just want to do some testing on different JREs, you can point each of your servers at a custom JRE and CommandBox will use it when starting the server.

server set jvm.javaHome="C:\Program Files\Java\jdk1.8.0_25"

To set the default version of Java for all the servers you start on your machine, use the global config setting defaults.

config set server.defaults.jvm.javaHome="C:\Program Files\Java\jdk1.8.0_25"

 

Add Your Comment

(1)

Oct 20, 2018 21:40:48 UTC

by Stewart McGuire

Brad, you should make a note that the folder in the /usr/local/bin folder for the JRE in linux should be jre not JRE. I just discovered that. I actually created it as a symlink to my OpenJDK that I just installed along side my 1.10. Now my CommandBox is using 1.8.

Recent Entries

Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring

Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring

Spring Boot developers know the pain of evaluating view technologies. Thymeleaf is great — until you need more expressiveness. FreeMarker is powerful — until the syntax fights you. What if you could write templates in a dynamic JVM language that gives you the full power of the platform, feels natural, and requires zero setup to integrate?

Meet the BoxLang Spring Boot Starter.

Luis Majano
Luis Majano
March 13, 2026
Why Swiss Banks Are Modernizing CFML Platforms Without Rewrites

Why Swiss Banks Are Modernizing CFML Platforms Without Rewrites

The growing need to evolve legacy financial platforms safely

Many Swiss banks and financial institutions still operate important systems built on ColdFusion and CFML platforms.

These systems manage a wide range of functions, including:

  • internal banking workflows
  • reporting systems
  • client portals
  • data integration platforms
  • compliance and risk management tools

In many cases, thes...

Cristobal Escobar
Cristobal Escobar
March 13, 2026
Reactive vs Proactive ColdFusion Support: Why Waiting for an Outage Is the Most Expensive Strategy

Reactive vs Proactive ColdFusion Support: Why Waiting for an Outage Is the Most Expensive Strategy

Many ColdFusion environments operate in a reactive mode without realizing it.

Everything seems fine… until something breaks.

A server crashes.

Performance drops suddenly.

An integration stops working.

A security audit reveals missing patches.

At that point the response is urgent:

“Can someone help us fix this now?”

Emergency support is sometimes unavoidable. But when reactive intervention becomes the norm, it usually means something deep...

Cristobal Escobar
Cristobal Escobar
March 12, 2026