The Debian java policy appears to need some clarification regarding how to handle modular jar files. A few things don't work the way one might expect with Java 11 (the default jdk on my system).
1. If you create a file with a version string such as libfoo-1.1.0.jar and symbolic link libfoo.jar that points to libfoo-1.1.0.jar, the following commands will cause java to crash: java -p /usr/share/java --list-modules java -p /usr/share/java --describe-module MODULE The problem is that, when java sees two files that contain the same module, java throws an exception and exits, even if one is merely a symbolic link pointing to another. 2. If the package xalan2, version 2.7.2 has been installed, the previous commands will also fail. Java tries to convert xalan2 to an automatic module. Unfortunately, one of the META-INF/services files contains the name of a class that does not exist. Java treats this as a fatal error instead of ignoring the file or skipping that entry and printing a warning. I'm currently using openjdk, version 11.0.1 (build 11.0.1+13-Ubuntu- 2ubuntu1). The question is whether there is a standard location for modular JAR files. I found a PDF file suggesting /usr/share/java/modules but that document is quite a few years old and I couldn't find any other documents corroborating that suggestion.