[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian java policy and modular jar files



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.



Reply to: