Tool modules can be created via `jmod --main-class` option such that 
`ModuleMainClass` attribute will be added in `module-info.class` and the 
module's main class can be launched via `java -m <module-name>` without 
specifying the name of the main class.

In addition, for modules with `ModuleMainClass` attribute, jlink will 
pre-resolve the module graph such that when such module is launched at runtime 
(without `--add-modules` or `--limit-modules` option), the runtime can skip the 
module resolution and speed up the startup time.

This PR extends the build system to allow a module to specify the main class 
under `make/modules/$MODULE/Jmod.gmk` file.    Also JDK tools with a single 
entry point (or a primary entry point) are candidates to add `ModuleMainClass` 
attribute in `module-info.class` to benefit from the jlink optimization.   For 
example, `java -m jdk.jpackage` will be launched using the pre-resolved module 
graph.

-------------

Commit messages:
 - 8317620: Build JDK tools with ModuleMainClass attribute

Changes: https://git.openjdk.org/jdk/pull/16463/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16463&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8317620
  Stats: 18 lines in 9 files changed: 6 ins; 0 del; 12 mod
  Patch: https://git.openjdk.org/jdk/pull/16463.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16463/head:pull/16463

PR: https://git.openjdk.org/jdk/pull/16463

Reply via email to