在 Java 9+ 中引入了 Module System(模块系统),模块(Module)通过 module-info.java 来定义。下面从基本结构 → 编译 → 运行一步步说明。
一个最简单的模块示例:
myapp/
├── src/
│ └── com.example.myapp/
│ ├── module-info.java
│ └── com/
│ └── example/
│ └── myapp/
│ └── Main.java
module com.example.myapp {
exports com.example.myapp;
}
package com.example.myapp;
public class Main {
public static void main(String[] args) {
System.out.println("Hello Module");
}
}
javac \
-d out \
src/com.example.myapp/module-info.java \
src/com.example.myapp/com/example/myapp/Main.java
编译后结构:
out/
└── com.example.myapp/
├── module-info.class
└── com/example/myapp/Main.class
-m 指定模块java -p out -m com.example.myapp/com.example.myapp.Main
参数说明:
-p out:module path(模块路径)-m:运行指定模块的主类输出:
Hello Module
目录结构示例:
modules/
├── com.example.util/
│ ├── module-info.java
│ └── com/example/util/Utils.java
├── com.example.app/
│ ├── module-info.java
│ └── com/example/app/Main.java
module com.example.app {
requires com.example.util;
}
javac -d out \
modules/com.example.util/module-info.java \
modules/com.example.util/com/example/util/Utils.java \
modules/com.example.app/module-info.java \
modules/com.example.app/com/example/app/Main.java
java -p out -m com.example.app/com.example.app.Main
jar --create \
--file myapp.jar \
--module-version 1.0 \
-C out/com.example.myapp .
运行:
java -p myapp.jar -m com.example.myapp/com.example.myapp.Main
❌ Module not found
-p 指定模块路径❌ Main class not found
模块名/完整类名
Java Module 运行 = 编译到模块路径 +
java -p 模块路径 -m 模块名/主类
如果你有 Maven / Gradle / Spring Boot / 多模块项目 的具体场景,我可以给你更贴合的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。