在 Java 9 引入了 Java Platform Module System(JPMS) 后,“升级 Module”通常指的是 升级模块(Module)的版本或依赖。Java Module 本身没有内置版本号机制,因此升级方式取决于你使用的构建工具和运行环境。
下面按常见场景说明如何升级 Java Module。
JDK 自带的模块(如 java.sql、java.net.http)不能单独升级,只能通过升级 JDK 本身 来完成。
java --version
升级 JDK:
JAVA_HOME✅ 这是唯一方式
❌ 不能单独替换 java.base 等模块
com.google.gsonmodule-info.java
module com.example.app {
requires com.google.gson;
}
pom.xml
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
✅ 升级方式:
<version>2.11.0</version>
然后:
mvn clean install
dependencies {
implementation('com.google.code.gson:gson:2.10.1')
}
升级:
implementation('com.google.code.gson:gson:2.11.0')
假设你有一个模块 JAR:
gson-2.10.1.jar
gson-2.11.0.jar
module-info.class 或自动模块)运行:
java --module-path mods --add-modules com.google.gson -jar app.jar
mods/
├── com.example.app
├── com.example.service
com.example.servicejavac -d mods/com.example.service \
--module-path mods \
src/com.example.service/module-info.java \
src/com.example.service/com/example/service/*.java
java --module-path mods -m com.example.app/com.example.app.Main
✅ Java Module 是按目录替换的
module com.example.service { }
❌ 不能写:
module com.example.service@2.0 { } // 错误
➡️ 版本由构建工具管理
| 场景 | 是否支持 |
|---|---|
| 同一模块不同版本 | ❌ 不支持 |
| 多版本 JAR | ✅(需特殊机制) |
| 替换模块 JAR | ✅ |
module com.example.service {
exports com.example.api;
}
如果新版本:
➡️ 会导致运行时异常
✅ 使用 Maven / Gradle 管理版本
✅ 模块边界保持稳定(API 不变)
✅ 不要手动管理 module-path
✅ 升级后执行:
mvn clean verify
✅ 使用 jdeps 检查依赖变化:
jdeps --module-path mods -s app.jar
Java Module 本身不升级,升级的是“模块实现(JAR)”;JDK 模块通过升级 JDK 升级,第三方模块通过构建工具升级。
如果你愿意,可以告诉我:
我可以给你更精确的升级方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。