📅  最后修改于: 2023-12-03 15:16:19.469000             🧑  作者: Mango
在Java中,使用模块可以让我们更好地组织和管理代码,尤其是在大型项目中。本文将介绍如何在Java中创建新模块的语法。
模块描述文件是每个模块的必须文件,它描述了模块的名字、依赖关系、导出的包等。以下是模块描述文件的示例:
module myModule {
requires myDependency;
exports myPackage;
opens myPackage;
}
其中,module
关键字后面跟着模块的名字,requires
描述了该模块依赖的其他模块,exports
描述了该模块导出的包,opens
描述了该模块打开的包(用于反射)。
在Java 9之前,所有的源代码都在同一个目录下。但现在,每个模块应该有自己的源代码目录。比如,假设我们的模块名为myModule
,则可以创建以下目录结构:
myModule
├── src
│ ├── main
│ │ └── java
│ │ └── myPackage
│ │ └── MyClass.java
│ ├── test
│ │ └── java
│ │ └── myPackage
│ │ └── MyClassTest.java
│ └── module-info.java
└── target
在上面的例子中,src/main/java
目录存放主要的源代码,src/test/java
目录存放测试代码,src/module-info.java
是模块描述文件。target
目录是编译后的代码存放的目录。
在src/main/java
目录下编写源代码。注意,这里的包名要和模块描述文件中导出的包名相同。
以下是一个简单的示例:
package myPackage;
public class MyClass {
public void sayHello() {
System.out.println("Hello, world!");
}
}
使用以下命令行编译代码:
javac -d target --module-source-path src $(find src -name "*.java")
其中,-d
参数表示编译后的代码存放在target
目录下,--module-source-path
参数表示源代码的路径,$(find src -name "*.java")
表示编译所有.java
文件。
在target
目录下运行代码:
java --module-path target --module myModule/myPackage.MyClass
其中,--module-path
参数表示模块所在的路径,--module
参数表示要运行的模块和类。在这个例子中,我们要运行的是myModule
模块中的myPackage.MyClass
类。
通过本文的介绍,我们了解了如何在Java中创建新模块的语法。我们可以很方便地使用模块来组织和管理代码,使得代码更加清晰和易于维护。