On Wed, 1 Nov 2023 19:58:07 GMT, Mandy Chung <[email protected]> wrote:
> 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.
>
> Verified manually by running `java -m $MODULE` on the modules with main class.
Looks ok from a build point of view.
make/Main.gmk line 410:
> 408: +($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
> 409: $(patsubst %,-I%/modules/$1,$(PHASE_MAKEDIRS)) \
> 410: -f CreateJmods.gmk MODULE=$1)
Suggestion:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
$(patsubst %,-I%/modules/$1,$(PHASE_MAKEDIRS)) \
-f CreateJmods.gmk MODULE=$1)
-------------
Marked as reviewed by erikj (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/16463#pullrequestreview-1710257242
PR Review Comment: https://git.openjdk.org/jdk/pull/16463#discussion_r1380113539