温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Module 如何运行

发布时间:2026-08-31 15:09:41 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 9 及以后版本中,Java Module System(Project Jigsaw) 正式引入。运行一个 Java Module 项目,通常有以下几种方式,从简单到完整说明。


一、最简单的运行方式(推荐)

1️⃣ 项目结构示例

hello-module
├── src
│   └── com.example.hello
│       ├── module-info.java
│       └── com
│           └── example
│               └── hello
│                   └── Main.java

2️⃣ 模块描述文件

// module-info.java
module com.example.hello {
    exports com.example.hello;
}

3️⃣ 主类

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 运行(最常见)

1️⃣ 打包

jar --create --file hello.jar \
    --module-version 1.0 \
    -C out/com.example.hello .

2️⃣ 运行

java --module-path hello.jar --module com.example.hello/com.example.hello.Main

✅ 这是“标准模块化运行方式”


四、方式三:打包成可执行 JAR(非严格模块化)

如果你只想“能跑”,不强制模块化:

jar --create --file hello.jar \
    --main-class com.example.hello.Main \
    -C out/com.example.hello .
java -jar hello.jar

⚠️ 这种方式 不会启用模块系统


五、方式四:使用 jlink(生成 runtime image)

这是 Java Module 的终极用法,适合发布。

1️⃣ 创建模块 JAR

jar --create --file mods/hello.jar \
    -C out/com.example.hello .

2️⃣ 生成 runtime image

jlink --module-path mods \
      --add-modules com.example.hello \
      --output hello-runtime

3️⃣ 运行

hello-runtime/bin/java --module com.example.hello/com.example.hello.Main

✅ 优点:

  • 体积小
  • 启动快
  • 不再依赖 JDK

六、IDE 中的运行方式

✅ IntelliJ IDEA

  1. 创建 Java Module 项目
  2. 自动识别 module-info.java
  3. 直接运行 main()

✅ Eclipse

  • 勾选 Java Module
  • 自动使用 --module-path

七、常见错误与解决

❌ 错误 1

Module not found

✅ 检查:

  • --module-path 是否正确
  • 模块名是否写错

❌ 错误 2

Package is not exported

module-info.java 加:

exports com.example.hello;

❌ 错误 3

Main class not found

✅ 确保:

--module com.example.hello/com.example.hello.Main

八、总结一句话

Java Module 本质上是通过 --module-path 加载模块,用 --module 指定主类运行。

如果你愿意,可以告诉我:

  • ✅ 你用的是 JDK 8 还是 11/17/21
  • ✅ 是 命令行 / Maven / Gradle / IDE
  • ✅ 是否想 jlink 发布

我可以给你一个 完全贴合你项目的可运行示例

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI