【问题标题】:Make the new JDK 11 java.net.http package visible in Netbeans 10使新的 JDK 11 java.net.http 包在 Netbeans 10 中可见
【发布时间】:2019-04-14 13:21:59
【问题描述】:

在 Apache Netbeans 10 中打开现有的 Netbeans 8 项目并将 Java 版本设置为最新的 JDK 11 后,Netbeans 仍然无法解析对新的 java.net.http 包的引用,该包包括改进的 HTTP 处理,例如 @ 987654324@、HttpRequestHttpResponse

需要做什么才能使新的java.net.http 包对 Apache Netbeans 10 中的现有项目可见?

【问题讨论】:

  • How to access http client module in Java 11 的可能重复项,因为阅读答案主要强调 NetBeans 中的java.xml 配置,而其余部分建议相同的答案。
  • 我觉得这两个问题处理不同的事情:你链接到的问题是关于从新 http 包的孵化器版本转移到完成的 JDK 11 版本;我的问题是关于使完成的 JDK 11 版本对已经不知道该包的 Netbeans 项目可见。两者相似,但我认为我的问题足以证明它的存在是合理的,因此我将把它留给 Stack Overflow 社区来决定它是否应该保持开放。
  • 好的。有道理,但老实说,我的答案似乎更倾向于第一次在 Netbeans 中创建模块化项目,而不是单独包含 http 客户端。

标签: java-11 java-module module-info java-http-client netbeans-10


【解决方案1】:

为了使新的java.net.http 包对您的项目可见,您需要配置您的项目,使其包含模块名称“java.net.http”(位于Javadoc page for the package 的顶部) )。

从 Netbeans 8 导入的现有 Java 项目将不了解 Java 9 中引入的模块系统,因此最初您将无法添加模块要求。要解决此问题,请在 Apache Netbeans 10 中右键单击您的 Java 项目,然后选择“New”,然后选择“Java Module Info...”。在出现的对话框中,检查详细信息并单击“下一步”按钮,然后确认您愿意将条目移出类路径并移入模块路径(如果提供)。现在,您将在项目的默认包中(在“Source Packages”/“”下)找到一个新文件“module-info.java”。

打开“module-info.java”文件,然后检查您的项目是否有错误标记(文件图标上愤怒的红色圆圈,表明该文件包含解析或编译错误)。打开报告错误的文件,您可能会发现 Java 文件顶部的一些导入语句现在报告了如下错误:

“包javax.xml.stream不可见:
(包 javax.xml.stream 在模块 java.xml 中声明,但模块 MyApplication 不读取它)"

此错误意味着您需要将以下行添加到“module-info.java”文件中的module MyApplication 定义(其中“MyApplication”将是基于您自己的项目的名称):

requires java.xml;

保存该更改,您现在应该会看到有关 javax.xml.stream 的特定错误消失了。重复此过程,直到所有可见性错误都从您的项目中消失。 (如果您的项目不使用任何非核心模块,那么您可能根本看不到任何错误。)

最后,一旦所有其他可见性错误都消失了,请将此行添加到您的 module MyApplication 定义中:

requires java.net.http;

保存该更改,现在在 Apache Netbeans IDE 10 中编辑项目代码时,您应该能够看到并使用新的 java.net.http 类,例如 HttpClient

【讨论】:

  • 这是关于java.xml 还是java.net.http
  • 这是关于解决任何可见性问题的过程,将在将 module-info.java 文件添加到项目时首次引入。仅包含 java.xml 模块要求作为示例,在添加新 http 模块的要求之前需要修复此类错误。
  • 这个答案是错误的。您无需使用 JPMS 即可使用新的 Java 11 类或包。
  • 没错,@AleksandrDubinsky,但是 Netbeans 处理项目(作为一个模块)的方式,需要这些步骤才能使 http 包对项目模块可见。请注意,此建议适用于 Apache Netbeans 10,最新版本是 12。因此,最新版本可能会以不同方式处理此问题。
  • @Bobulous 实际上,Netbeans 10-11 可以很好地处理非 JPMS 项目,但我的 Netbeans 12 安装已损坏并显示奇怪的 JPMS 警告,这就是我发现这个问题的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
  • 2018-09-05
  • 1970-01-01
  • 2019-05-10
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多