From https://www.reddit.com/r/java/comments/fx3lz5/java_9_modularity_the_difficulties_and_pitfalls/fn0t1n5?utm_source=share&utm_medium=web2x requires static transitive java.naming; The static modifier declares an optional dependency, which is required at compile time but not at runtime; i.e., if it's there it is "read", but if not, launch shouldn't fail (the assumption being that missing classes will be gracefully handled). With nothing requiring the java.naming module to be present at runtime, jlink has no reason to include it. This appears to be a bug in logback-core, as, according to your description, it clearly does not gracefully handle those missing classes. |