I’m very happy to report flawless migration from 6.2 to 7 using fresh install then copying over my .CFConfig.json from the 6.2 backup, restoring AJP secret and ModCFML shared key from Apache into server.xml, etc.
I noticed it was bundled with Java 21.
I was interested in Java 24 for the maximum performance improvement.
I’m guessing it’s not bundled because it’s not LTS?
I just now saw that Java 25 LTS has been released, but has that been thoroughly tested yet with Lucee 7?
For production is it best sticking with Java 21 for now?
OS: AlmaLinux 8
Java Version: 21
Tomcat Version: 11
Lucee Version: 7
1 Like
Java 24 was released once we already had reached RC cycle, so the target is Java 21 for 7.0
I’ve done a lot of testing with Java 24 and it’s good and I’m not aware of any outstanding issues.
As for Java 25, I’ve also done some testing, there’s some console warnings about locales but otherwise, seems fine, feel free to test it out
The Lucee Java 11 to Java 21 story was extremely complicated in terms of changes required, Java 21 to 25 is a lot more sane.
Main gotcha with Java 25 is that you can’t delete read only files on Windows
TL;DR Java 24 is great and there are no known problems. Java25 should be fine, but you’re doing a service to the community by test it out!
2 Likes
I have Lucee 7.0.0.395 with Java 25.0.1 running in production for several hours today and so far zero issues.
The JRE upgrade docs page is way outdated, so I’ll submit PR for that after getting feedback (if any) on how I upgraded Java 21 to 25.
optional prerequisite: lucee-upgrade-in-progress-toolkit-for-apache
sudo -i
# confirm current java version
/opt/lucee/jre/bin/java --version
# confirm architecture e.g. x86_64
uname -m
# find release for current architecture at
# https://github.com/adoptium/temurin25-binaries/releases
# (click Show all assets)
JRE_VERSION="jdk-25.0.1+8"
GZFILE="OpenJDK25U-jre_x64_linux_hotspot_25.0.1_8.tar.gz"
mkdir -p /root/download
cd /root/download
wget https://github.com/adoptium/temurin25-binaries/releases/download/${JRE_VERSION}/${GZFILE}
# extract gzip files
tar -xzf ${GZFILE}
cd /opt/lucee
# optional in PROD only:
sys/upgrade-in-progress/begin.sh
# stop Lucee
lucee_ctl stop
# backup current JRE
BACKUP_TS=$(date +%Y%m%d-%H%M)
mv jre jre.21.backup.${BACKUP_TS}
# install new JRE
mv /root/download/${JRE_VERSION}-jre jre
# confirm new java version
jre/bin/java --version
# only in DEV when mkcert is used:
jre/bin/keytool -import -alias mkcert-root -keystore jre/lib/security/cacerts -file ~/.local/share/mkcert/rootCA.pem -storepass changeit -noprompt
# start Lucee
lucee_ctl start
# conduct smoke tests
# optional in PROD only:
sys/upgrade-in-progress/end.sh
# emergency rollback
lucee_ctl stop
mv jre jre.25.backup.$(date +%Y%m%d-%H%M)
mv jre.21.backup.${BACKUP_TS} jre
lucee_ctl start
1 Like