首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPMS如何在运行时决定根模块

JPMS如何在运行时决定根模块
EN

Stack Overflow用户
提问于 2022-06-06 20:32:46
回答 2查看 77关注 0票数 1

我是java模块系统的新手。我试图了解JPMS是如何决定根模块在运行时构建模块图的。

我所理解的是,模块路径中的所有模块都将添加到根模块集中。JPMS从根模块集开始构建模块图,add-modules选项可以向根模块集添加更多模块。当构建模块图时,如果没有在所有模块中找到一个类,JPMS将在类路径中搜索它,如果找到它,那么这个类将添加到未命名的模块中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-06 21:13:12

默认根模块集取决于您的主类位于类路径还是模块路径上。

在任何情况下,除非显式指定--add-modules ALL-MODULE-PATH,否则模块路径上的模块不会自动添加到根模块集中。

如果从类路径运行,则大多数系统模块都是根模块。有关更多详细信息,请参阅9月261

如果从模块路径运行,默认情况下只有主应用程序的模块(由--module指定)是根用户。其他的可以添加到--add-modules中。

票数 2
EN

Stack Overflow用户

发布于 2022-06-10 21:00:19

书<> Chapter2:

  • 如果应用程序代码是从类路径编译的,或者主类是从类路径运行的,则默认的根模块集由java.se模块和所有非java.*系统模块(如jdk.*和javafx.* )组成。如果不存在java.se模块,则默认的根模块集由所有java.*和非java.*模块组成。
  • 如果应用程序由模块组成,则默认的根模块集取决于阶段:。
    • 在编译时,它由正在编译的所有模块组成.
    • 在链接时,它是空的。
    • 在运行时,它包含包含主类的模块。您可以在java命令中使用--模块或-m选项来指定要运行的模块及其主类。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72523183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档