gpt4 book ai didi

java - JDK9 中有哪些预定义模块或者我需要哪个模块来修复依赖问题?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:06:37 24 4
gpt4 key购买 nike

JDK9 将(可能)引入模块系统。作为其中的一部分,Java 类库将被模块化。

当找不到类时,这可能会导致异常,因为它们位于尚未指定为依赖项的模块中。

将使用模块系统创建的模块是什么?它们各自的内容是什么?

或换句话说:给定一个未加载的类,我如何找到合适的模块作为依赖项包含在内?

最佳答案

how do I find the proper module to include as a dependency?

考虑这个恶搞类:

import java.sql.DriverManager;
import java.rmi.RemoteException;

public class UserDao {
DriverManager driverManager = null;

public void service() throws RemoteException {
if (true) {
throw new RemoteException();
}
}
}

假设这个类被编译成user-dao.jar。 jdeps 工具就是答案(使用 9ea170):

jdeps --list-deps user-dao.jar
java.base
java.rmi
java.sql

(请注意,jdeps 随 JDK 8 一起提供,但在 JDK 9 中更合适。)

为了完整起见,如果您知道代码使用特定类(例如 java.sql.DriverManager)并且您怀疑需要一个模块(例如 java.sql ), 可以通过 the doc 确认模块,或在命令行上(同样使用 9ea170):

bash$ java --describe-module java.sql
java.sql@9-ea
exports java.sql
exports javax.sql
exports javax.transaction.xa
requires java.xml transitive
requires java.base mandated
requires java.logging transitive
uses java.sql.Driver

关于java - JDK9 中有哪些预定义模块或者我需要哪个模块来修复依赖问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com