Java 模块化实战:深入理解 JDK 9 模块系统
Java 9 引入了模块化系统,可以将 Java 程序分解为模块,以提高可维护性和可重用性。下面是一个复杂的模块化 Demo,展示了如何创建和使用模块。
首先,我们创建一个名为 "com.example.app" 的模块,该模块将依赖于另外两个模块。在模块的根目录下,创建一个名为 "module-info.java" 的文件,用于定义模块的信息和依赖关系。
module com.example.app {
requires com.example.module1;
requires com.example.module2;
}
接下来,我们创建两个模块,分别命名为 "com.example.module1" 和 "com.example.module2"。这两个模块将提供一些功能供主应用程序使用。
在每个模块的根目录下,同样创建一个 "module-info.java" 文件。
// com.example.module1
module com.example.module1 {
exports com.example.module1.api;
}
// com.example.module2
module com.example.module2 {
exports com.example.module2.api;
}
在每个模块的源代码目录下,创建相应的包和类。
// com.example.module1.api
package com.example.module1.api;
public class Module1Class {
public void module1Method() {
System.out.println("Module 1 Method");
}
}
// com.example.module2.api
package com.example.module2.api;
public class Module2Class {
public void module2Method() {
System.out.println("Module 2 Method");
}
}
最后,我们创建一个主应用程序来使用这些模块。
// com.example.app
package com.example.app;
import com.example.module1.api.Module1Class;
import com.example.module2.api.Module2Class;
public class MainApp {
public static void main(String[] args) {
Module1Class module1 = new Module1Class();
Module2Class module2 = new Module2Class();
module1.module1Method();
module2.module2Method();
}
}
编译和运行应用程序时,需要指定模块路径和主模块。
javac --module-path <path_to_modules> -d <output_directory> com.example.module1 com.example.module2 com.example.app
java --module-path <path_to_modules> --module com.example.app/com.example.app.MainApp
这是一个复杂的模块化 Demo,展示了如何创建和使用模块。通过模块化,我们可以将应用程序分解为模块,使代码更加清晰和可维护。
原文地址: https://www.cveoy.top/t/topic/omIU 著作权归作者所有。请勿转载和采集!