使新的 JDK 11 java.net.http 包在 Netbeans 10 中可见

Make the new JDK 11 java.net.http package visible in Netbeans 10

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

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

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

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

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

"Package javax.xml.stream is not visible:
(package javax.xml.stream is declared in module java.xml but module MyApplication does not read it)"

此错误意味着您需要将以下行添加到 [=38] 中的 module MyApplication 定义(其中 "MyApplication" 将是基于您自己的项目的名称) =] 文件:

requires java.xml;

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

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

requires java.net.http;

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