1

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

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

4

1 回答 1

1

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

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

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

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

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

requires java.xml;

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

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

requires java.net.http;

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

于 2018-11-11T18:11:38.970 回答