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
基础教程推荐
- Maven:无效的目标版本:10 2022-01-01
- JPA惰性列表上的流 2022-01-01
- 如何在相机中应用自定义滤镜 [Surfaceview 预览]. 2022-01-01
- doFilter()是在servlet的工作完成之前还是之后执行的? 2022-01-01
- 将 Windows 证书导入 Java 2022-01-01
- 将 double 转换为 Int,向下舍入 2022-01-01
- 在springboot中如何给mybatis加拦截器 2023-04-29
- 在java中使用xpath和selenium解析HTML表格数据 2022-01-01
- 控制台应用程序中的 Java 键盘输入解析 2022-01-01
- Java ECDSAwithSHA256 签名长度不一致 2022-01-01
