前提我们需要java版本为java 9 ,最好是java 14
1.新建一个类
首先创建一个类MainShi55, 包名为 chigua ,结构如下:
55MianShi.Com #cat chigua/MianShi55.java
package chigua;
public class MianShi55 {
public static void main(String[] args) {
System.out.println("Hello 55mianshi.com 55面试网");
}
}
在前模块化时代,使用 jar 命令,打包为jar包,即可打包使用。
在后模块时代,moduel 模块才是 java世界的一等公民,直接使用jar 回显得无组织无纪律。
2.打包为一个模块
2.1编写模块声明文件
55MianShi.Com #cat module-info.java
module chigua.mianshiff{
}
编译代码
55MianShi.Com #javac -version
javac 14.0.2
55MianShi.Com #java -version
java version "14.0.2" 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
#编译
55MianShi.Com # javac module-info.java chigua/MianShi55.java
打包为模块,如下命令,其中-class-path 指定类路径,最后一个参数为模块文件,可以随意命名。
##jmod create -class-path java类文件根路径 模块文件名,一般已jmods结尾
##--main-class 参数可指定主类
3.引入一个java模块
前模块时代,将一个jar包加入classpath 即可引用其中的类,如何引用一个模块中的类,代码如下:
java -m 参数指定要要运行的模块和类名
java -m 模块:类名
java -p 模块所在路径
#先打印模块列表,检查模块是否被加载
xiaolong@localhost chigua % java --list-modules -p ./mods
java.base@14.0.2
java.compiler@14.0.2
...
...
jdk.xml.dom@14.0.2
jdk.zipfs@14.0.2
chigua.mianshiff
#运行模块的类
55mianshi@localhost chigua % java -p ./ -m chigua.mianshiff/chigua.MianShi55
Hello 55mianshi.com 55面试网
如果jmod create 创建的时候,增加参数 --main-class 指定主类,模块运行的时候直接提供模块名即可。