Use jdk.internal.net.http(使用jdk.inder.net.http)
问题描述
我想使用jdk.internal.net.http
中的ResponseSubscribers.ByteArraySubscriber
。我使用的是Openjdk11。
我尝试了两种方法:
1/ 我添加了maven编译器插件导出模块
<compilerArgs>
<arg>--add-exports</arg><arg>java.net.http/jdk.internal.net.http=fr.app</arg>
</compilerArgs>
->编译!
2/ 我创建了模块-info.java
module fr.app {
requires java.net.http;
requires com.fasterxml.jackson.core;
requires com.fasterxml.jackson.databind;
requires com.fasterxml.jackson.datatype.jsr310;
exports fr.app;
exports fr.app.parser;
}
运行使用类导入的junit测试时出错jdk.internal.net.http
我知道fr.app.AppException:java.io.IOException:类fr.app.MyClass$BodySubscribers(在未命名模块@0x6537cf78中)无法访问类jdk.internal.net.http.ResponseSubscribers$ByteArraySubscriber(在模块java.net.http中),因为模块java.net.http不会将jdk.inder.net.http导出到未命名模块@0x6537cf78
BodySubscribers
必须仅在命名模块中导出。但我的模块名为fr.app
,对吗?
推荐答案
但我的模块名为fr.app,对吗?
并非如此,虽然您在项目中创建了module-info.java
,但在应用程序的执行过程中,您的实际代码似乎最终会在类路径上找到。
因此您的MyClass
驻留在the unnamed module中,错误如下
类fr.app.MyClass$BodySubscribers(在未命名的模块中.....
另外,您提到的类似乎是打包到java.net.http
模块的内部,不应该从您的代码中依赖。您必须实现您自己的订阅者,即使您希望获得与您正在查看的代码类似的功能。因为模块无论如何都不会将其导出用于公共用途。
这篇关于使用jdk.inder.net.http的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用jdk.inder.net.http
基础教程推荐
- 降序排序:Java Map 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01