RFR: 8114827: JDK 9 multi-release enabled jar tool

Alan Bateman Alan.Bateman at oracle.com
Thu Jun 2 14:06:01 UTC 2016


On 02/06/2016 02:02, Steve Drach wrote:

> Hi,
>
> Please review the following changeset that makes it easier to create multi-release jar files with jar tool.
>
> webrev: http://cr.openjdk.java.net/~sdrach/8114827/webrev.01/
> issue: https://bugs.openjdk.java.net/browse/JDK-8114827
>
> The changeset is the implementation of a new command line option, —release n, that indicates all following files and directories are placed in the META-INF/versions/n directory of a multi-release jar file.  The new command line syntax is
>
> jar [OPTION...] [ [--release VERSION] [-C dir] files] …
>
> An example is
>
> jar --create --file mr.jar README -C foo classes --release 9 -C foo9 classes Foo.class
>
> This will put README and all the files under foo/classes in the base (or root) directory of a jar file and put Foo.class and all the files under foo9/classes in the META-INF/versions/9 directory of the jar file.
I don't have time to do a detailed look at the code but `--release 9 -C 
<dir> ...` looks quite good. It does mean mixing of option styles.

One thing to check is that the `jar -help` output is clean. It looks 
like it might wrap which can look messy (the usage output from `jlink` 
had to be cleaned up recent months on this specific point).

On terminology then then usage has "versioned area" in one place, 
"versioned directory" in another. I thought the JarFile javadoc was 
using "versioned section" at one point but I don't see it now. Anyway, 
just pointing this out to make sure that it is consistent.

-Alan




More information about the core-libs-dev mailing list