Tomcat 7.0.73 doesn’t work with java 9

You’ll have to hack the script bin/catalina.sh to get this to work.

There are a bunch of lines like this in bin/catalina.sh:

  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
    ...

Just remove the second of those lines (the one with -Djava.endorsed.dirs) in each case and you should be back in business.

I’m looking at improving those scripts so that -Djava.endorsed.dirs is not provided to the JVM when the value is empty (which should be the case if you are using Java 9).

UPDATE 2017-11-06

Looks like r1810284 should fix the endorsed.dirs problem. Expect this fix to be included in Tomcat 7.0.83 (or whatever the next 7.0.x version passes voting).

UPDATE 2018-03-07

The first official release of Apache tomcat 7.0.x that includes this fix is Apache Tomcat 7.0.84, voted stable on 2018-01-24.

Leave a Comment