Building jar targeting multiple Java versions, including 9

Alan Bateman Alan.Bateman at
Fri Aug 26 10:22:43 UTC 2016

On 26/08/2016 10:16, Uwe Schindler wrote:
> - In addition we would have a separate compilation unit with only a single and that’s compiled with Java 9's Javac. The resulting file could be placed in the JAR file, too (not sure where: In root or in the multi-release place??? The latter would allow us to merge this with the previous point and we would not need 3 compilation runs).
It should be in the root directory. We need to update JEP 238 or JEP 261 
to properly document the proposal for how modular JARs should work as 
multi-release JAR. It has been touched on in a couple of threads but 
isn't written down clearly. Briefly, the proposal is that 
module-info.class is allowed in META-INF/versions/<N>. When 
module-info.class is in the versioned section then it should be the same 
as the module-info.class in the root directory except that it might have 
different non-public `requires` on java.* or jdk.* modules. It might 
also have different `uses` clauses. The high level intention is that the 
module API doesn't change and the differences in the module declaration 
are just implementation details.


More information about the jigsaw-dev mailing list