JDK9上的“程序包java.net.http不存在”错误

我在从HttpRequest JavaDoc编译简单的阻止GET示例时遇到问题:

package org.example;

import java.io.IOException;

import java.net.URI;

import java.net.URISyntaxException;

import java.net.http.HttpRequest;

import java.net.http.HttpResponse;

import static java.net.http.HttpRequest.noBody;

import static java.net.http.HttpResponse.asString;

public class Http2 {

public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {

HttpResponse response = HttpRequest

.create(new URI("http://www.infoq.com"))

.body(noBody())

.GET().response();

int responseCode = response.statusCode();

String responseBody = response.body(asString());

System.out.println(responseBody);

}

}

我得到package java.net.http does not exist使用JDK 9编译时错误:

{ jdk9 }  » /cygdrive/c/Program\ Files/Java/jdk-9/bin/javac -d out/production -modulesourcepath org.example.module1/src/ -m org.example.module1

org.example.module1\src\org.example.module1\org\example\Http2.java:6: error: package java.net.http does not exist

import java.net.http.HttpRequest;

^

org.example.module1\src\org.example.module1\org\example\Http2.java:7: error: package java.net.http does not exist

import java.net.http.HttpResponse;

^

org.example.module1\src\org.example.module1\org\example\Http2.java:9: error: package java.net.http does not exist

import static java.net.http.HttpRequest.noBody;

^

org.example.module1\src\org.example.module1\org\example\Http2.java:9: error: static import only from classes and interfaces

import static java.net.http.HttpRequest.noBody;

^

org.example.module1\src\org.example.module1\org\example\Http2.java:10: error: package java.net.http does not exist

import static java.net.http.HttpResponse.asString;

^

org.example.module1\src\org.example.module1\org\example\Http2.java:10: error: static import only from classes and interfaces

import static java.net.http.HttpResponse.asString;

^

org.example.module1\src\org.example.module1\org\example\Http2.java:14: error: cannot find symbol

HttpResponse response = HttpRequest

^

symbol: class HttpResponse

location: class Http2

org.example.module1\src\org.example.module1\org\example\Http2.java:14: error: cannot find symbol

HttpResponse response = HttpRequest

^

symbol: variable HttpRequest

location: class Http2

org.example.module1\src\org.example.module1\org\example\Http2.java:16: error: cannot find symbol

.body(noBody())

^

symbol: method noBody()

location: class Http2

org.example.module1\src\org.example.module1\org\example\Http2.java:19: error: cannot find symbol

String responseBody = response.body(asString());

^

symbol: method asString()

location: class Http2

10 errors

使用命令行和IntelliJ会发生相同的错误。

我的模块没有问题,因为没有java.net.http的类可以编译并运行而没有任何问题。

知道发生了什么吗?

回答:

在模块定义中(基于包名称)位于中src/org/example/module-info.java,您需要将依赖项添加到java.net.http包中,该依赖项包含在java.httpclient模块中:

module org.example {

requires java.httpclient;

}

您可以在模块摘要中找到JDK模块的列表。

以上是 JDK9上的“程序包java.net.http不存在”错误 的全部内容, 来源链接: utcz.com/qa/432416.html

回到顶部