在 Java 9 及以后版本中,Java Module System(Project Jigsaw) 正式引入。运行一个 Java Module 项目,通常有以下几种方式,从简单到完整说明。
hello-module
├── src
│ └── com.example.hello
│ ├── module-info.java
│ └── com
│ └── example
│ └── hello
│ └── Main.java
// module-info.java
module com.example.hello {
exports com.example.hello;
}
package com.example.hello;
public class Main {
public static void main(String[] args) {
System.out.println("Hello Module!");
}
}
javac --module-source-path src -d out \
$(find src -name "*.java")
java --module-path out --module com.example.hello/com.example.hello.Main
✅ 适合开发调试
jar --create --file hello.jar \
--module-version 1.0 \
-C out/com.example.hello .
java --module-path hello.jar --module com.example.hello/com.example.hello.Main
✅ 这是“标准模块化运行方式”
如果你只想“能跑”,不强制模块化:
jar --create --file hello.jar \
--main-class com.example.hello.Main \
-C out/com.example.hello .
java -jar hello.jar
⚠️ 这种方式 不会启用模块系统
这是 Java Module 的终极用法,适合发布。
jar --create --file mods/hello.jar \
-C out/com.example.hello .
jlink --module-path mods \
--add-modules com.example.hello \
--output hello-runtime
hello-runtime/bin/java --module com.example.hello/com.example.hello.Main
✅ 优点:
module-info.javamain()--module-pathModule not found
✅ 检查:
--module-path 是否正确Package is not exported
✅ module-info.java 加:
exports com.example.hello;
Main class not found
✅ 确保:
--module com.example.hello/com.example.hello.Main
Java Module 本质上是通过
--module-path加载模块,用--module指定主类运行。
如果你愿意,可以告诉我:
我可以给你一个 完全贴合你项目的可运行示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。