Discover modulename

Alan Bateman Alan.Bateman at oracle.com
Thu Aug 25 10:51:26 UTC 2016


On 25/08/2016 11:26, Robert Scholte wrote:

> Hi,
>
> In an old thread I asked this before and got the following answer:
> "One way is `jar --file foo.jar -p`. That will print the module 
> descriptor when the JAR file is a modular JAR. There is API support 
> for reading the binary form of the module declaration too."
>
> With the renaming of the arguments I assume it is now:
> jar --file foo.jar --print-module-descriptor
>
> However, this gives me an exception on the asm-6.0_ALPHA.jar
>
> d:\jdk-9\bin\jar --file asm-6.0_ALPHA.jar --print-module-descriptor
> java.lang.module.InvalidModuleDescriptorException: Index into constant 
> pool out of range
>         at 
> java.lang.module.ModuleInfo.invalidModuleDescriptor(java.base at 9-ea/ModuleInfo.java:804)
I can't think how the CLI update could cause this. Is there an ASM 
generated module-info.class in the picture? I wonder if this is main 
line JDK 9 vs. the Jigsaw EA builds where the binary representation has 
changed.


> :
>
> How about jars without module descriptor? Is there a commandline 
> option to discover what the name of an automodule will be? I could 
> guess the name, but I'd prefer to show the calculated name.
>
`java --list-modules` might help. Also it's easy to derive the module 
name from the name of the JAR file, all the details are in the 
ModuleFinder.of(Path...) javadoc.

-Alan


More information about the jigsaw-dev mailing list