I updated a server to run Lucee 5.3/Tomcat 9/Java 11 a few months ago. It was much longer since I had upgraded Lucee 4.5 to 5 and Tomcat 8.x to 9 though so things may have changed.
I don’t have the environment in front of me so can’t go into too much detail, but here’s a rundown of what I can think of off the top of my head.
Lucee 4.5 -> 5.3: Your mileage may vary because that’s a pretty big step forward. I think some people in the past have suggested to just remove the old version and install a fresh version of Lucee 5.x to save the headaches of trying to migrate 4.5. If it was me, I’d install a stable version of 5.2.x and then update to 5.3 from the admin or dropping in the JAR after.
Tomcat 8.5 -> 9: All you should have to do is copy the contents of the /lib and /bin directories of version 9 into your current version’s same directories. Avoid overwriting /bin/setenv.sh if you make use of it in your environment. You may need to compare settings in /conf/server.xml but I don’t think it needs to be touched to work.
Java 11: Whether you use OpenJDK, Oracle or someone else’s variant, I would install that as usual and then update Tomcat’s /bin/setenv.sh (.bat if Windows I believe?) to set JAVA_HOME/JRE_HOME to the Java install’s /bin directory. Since Java 11 doesn’t have a JRE I know I did something slightly different with setting JRE_HOME but can’t remember exactly what. I could follow up on that setting if needed.
Hope that helps.