Сам спросил сам и отвечу)
Не смотря на то, что написано в документации, параметром --JvmOptions9 можно передавать опции типа "--add-reads". Но Tomcat не полность поддерживает формат опций Java 9. Например, он понимает "--add-opens=java.desktop/java.awt=ALL-UNNAMED", но не стартует с "--add-opens java.desktop/java.awt=ALL-UNNAMED" (с пробелом вместо "=")
Ну и в дополнение напишу несколько моментов, из-за которых Tomcat сервис на Java 9+ под Windows тоже может не стартовать:
- Java options для Java 9+ нужно указывать в определенном порядке.
Например, сначала должен быть module-path, потом add-modules, дальше patch-module (если нужен) а потом уже все остальное. При этом, если запускать без Tomcat или с ним но не как сервис, то порядок не важен
- Проверяйте нет ли пробела после каждой опции.
Например, если написать "--add-reads=java.desktop=ALL-UNNAMED " (с пробелом вконце), то JVM вам выдаст "Unknown module: ALL-UNNAMED specified to --add-reads" и вы будете долго искать что же не так с "ALL-UNNAMED"
- Не забывайте, что для Tomcat ";" является разделителем параметров.
Когда передаете несколько параметров в classpath через ";" этот символ нужно экранировать одинарными кавычками "';'"