模块依赖性是指一个模块依赖于或需要另一个模块。模块依赖性在“ 在Eclipse IDE中使用Java 9开发模块,第1部分 ” 一文中的“ 声明其他模块的依赖性”部分中介绍。在两篇文章的第一篇“ 使用模块依赖关系,第1部分 ”中,我们为两个模块创建了两个Java项目,一个主模块和一个依赖模块。我们无法在一个Java项目中创建这两个模块,因为Eclipse IDE不支持单个项目中的多个模块。创建了两个项目后,在这篇续篇文章中,我们将每个项目导出到一个单独的JAR文件中。在早期的教程中讨论了将模块导出和用作JAR文件,“使用Java 9模块作为JAR文件。“目前不支持在单个JAR中添加多个模块,但计划用于未来的Java版本。在本文中,我们将讨论配置两个Java项目并运行主模块应用程序演示模块依赖。本文包含以下部分:
设置主Java项目的构建路径
之前开发的两个Java项目存在错误,如图1中的红色标记所示。指示错误是因为两个模块在单独的项目中定义,并且依赖项目不在主项目的构建路径中。
图1:带有错误的Java项目
在本节中,我们将配置MainModule项目的构建路径,以将HelloJavaModule项目添加到构建路径。右键单击Package Explorer中的MainModule,然后选择Build Path> Configure Build Path,如图2所示。
图2: Package Explorer>构建路径>配置构建路径
在Properties窗口中,将显示Java Build Path默认设置,如图3所示。
图3: Java构建路径
选择Projects选项卡并选择Modulepath,如图4所示。单击Add ...
图4: Java构建路径>项目>模块路径>添加...
该要求的项目选择窗口显示的依赖项目HelloJavaModule,如图5.选择HelloJavaModule项目,然后单击确定。
图5:选择要添加的项目
该HelloJavaModule项目被添加到ModulePath进行(见图6)。单击“ 应用并关闭”。
图6:添加到Modulepath的Java项目HelloJavaModule
错误和红色标记将从MainModule项目中删除,如图7所示。
图7:从MainModule中删除的错误
将主Java项目导出到JAR文件
将HelloJavaModule项目添加到MainModule项目的构建路径只会消除构建/编译时错误。对于运行时,我们需要将每个模块导出到JAR文件,并将JAR文件添加到运行项目运行时的运行时模块路径中。需要将JAR文件导出到同一文件夹,以便我们能够配置模块路径而无需跨项目引用模块。如前所述,尚不支持多模块JAR,但计划在更高版本的Java中支持。
要将MainModule项目导出到JAR文件,请右键单击Package Explorer中的MainModule并选择Export,如图8所示。
图8: Package Explorer> MainModule> Export
在Export窗口中,选择Java> JAR file,如图9所示,然后单击Next。
图9:导出> Java> JAR文件>下一步
在JAR文件规范中,选择要导出为MainModule的资源,如图10所示。选择导出目标为MainModule modules mainmodule.jar。点击下一步。
选择默认的JAR Packaging Options(参见图11),然后单击Next。
图11:选择包装选项
接下来,自定义JAR清单规范,其中包括选择应用程序入口点的类。单击Browse for Main class,如图12所示。
图12:主类>浏览
在Select Main Class中,选择main.module包中的MainModule类,如图13所示,然后单击OK。
图13:选择主类
与主类中选择,单击完成,如图14。
图14: JAR导出>完成
所述mainmodule.jar被导出到MainModule /模块目录,如图包资源管理器在图15中。
图15:导出的JAR mainmodule.jar
将依赖项Java项目导出到JAR文件
在本节中,我们将依赖项目HelloJavaModule导出到与导出主模块JAR相同的目录中的JAR文件。要将HelloJavaModule项目导出到JAR文件,请在Package Explorer中右键单击该项目,然后选择Export(参见图16)。
图16: Package Explorer> HelloJavaModule> Export
在Export窗口中,选择Java> JAR file,如图17所示,然后单击Next。
图17:导出> Java> JAR文件>下一步
在JAR文件规范中,选择要导出为HelloJavaModule的资源,如图18所示。选择与主模块JAR相同的导出目标,即MainModule modules目录。JAR文件名需要不同,并且是helloJavaModule.jar。点击下一步。
图18:依赖性JAR的JAR文件规范
选择默认的JAR Packaging Options,如图19所示,然后单击Next。
图19:选择包装选项
接下来,自定义JAR清单规范。因为依赖项目不包含应用程序入口点的类,所以将Main类字段保持为空,如图20所示,然后单击Finish。
图20:依赖项目没有主类
所述helloJavaModule.jar被导出到MainModule /模块目录,如图包资源管理器在图21中。
图21:导出的JAR helloJavaModule.jar
添加运行配置
要运行主模块Java应用程序,我们需要为MainModule项目创建运行配置。右键单击Package Explorer中的MainModule,然后选择Properties,如图22所示。
图22: Package Explorer> MainModule> Properties
在Properties窗口中,选择Run / Debug Settings并单击New ...以创建新的启动配置,如图23所示。
图23:属性>运行调试设置>新建...
在Select Configuration Type中,选择Java Application,如图24所示。
图24:选择配置类型作为Java应用程序
在配置向导中,在Name字段中指定一个名称(MainModuleConfig),并选择Project作为MainModule,单击Search ...作为Main类,如图25所示。
图25:设置启动配置属性
在Select Main Type中,选择main.module.MainModule类型(参见图26),然后单击OK。
图26:选择主要类型
与主类中选择,单击参数选项卡以选择下一个虚拟机指定参数时,如图27。
图27:选择Arguments选项卡
将以下VM参数添加到VM参数字段,如图28所示。
--module-path modules / helloJavaModule.jar; modules / mainmodule.jar -m mainModule / main.module.MainModule
所述--module路径 ARG设置模块路径两个JAR用于两个模块。该-m ARG设置模块。单击Apply,如图28所示。
图28:应用运行配置设置
单击OK,如图29所示,完成运行配置。
图29:完成运行配置
将创建一个新的运行配置MainModuleConfig,如图30所示。单击Properties窗口中的Apply和Close。
图30:为MainModule项目应用属性
运行主模块Java应用程序
接下来,我们将测试主模块是否通过运行主模块应用程序来调用依赖模块。在Package Explorer中右键单击MainModule.java,然后选择Run As> Java Application(参见图31)。
图31: Package Explorer> MainModule> Run As> Java Ap
Java应用程序的输出显示在Console中,如图32所示。主模块中的“Hello from”消息与消息“Exported Java Module!”结合在一起。从依赖模块输出消息“Hello from Exported Java Module!”。
图32:控制台输出
在两篇文章中,我们讨论了在Java 9中使用模块依赖性。
欢迎大家在评论区进行留言讨论,写的不好莫怪...