使用Java 11编译时,Intellij找不到java.net.http

Wil*_*ill 3 java intellij-idea java-11

我正在努力让我的一个项目为Java 11做好准备但由于某种原因Intellij找不到java.net.http.它没有强调它,因为我没有找到module-info.java它,如果我输入错误但是当我尝试构建项目时,我得到下面的错误.我已经尝试重新安装Intellij 2018.2.3并卸载所有其他版本的Java.任何有关如何使这项工作的建议将不胜感激.

错误:

Information:java: Errors occurred while compiling module 'crawler'
Information:javac 11 was used to compile java sources
Information:15/09/2018 11:16 - Compilation completed with 1 error and 0 warnings in 636 ms
C:\Users\Will\IdeaProjects\crawler\src\module-info.java
Error:(2, 22) java: module not found: java.net.http
Run Code Online (Sandbox Code Playgroud)

module-info.java:

module crawler {
    requires java.net.http;
}
Run Code Online (Sandbox Code Playgroud)

Request.java:

package Request;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Request {
    public static void main(String[] args) throws IOException, InterruptedException {
        System.out.println("starting download");
        String body = HttpClient.newBuilder().build().send(HttpRequest.newBuilder().uri(URI.create("https://example.com")).build(), HttpResponse.BodyHandlers.ofString()).body();
        System.out.println("finished download:" + body);
    }
}
Run Code Online (Sandbox Code Playgroud)

结构体:

crawler
    src
        Request
            Request.java
        module-info.java
Run Code Online (Sandbox Code Playgroud)

Mat*_*rea 13

我对包 jdk.jfr 有同样的问题。这就是我修复它的方式。它也应该对你有用。

为了使它工作,我必须进行 2 处更改:

首先,我必须将语言级别设置为 11;见下图。

在此处输入图片说明

然后我不得不调整Java编译器。目标字节码版本为 11,我将项目字节码版本设置为与语言级别相同。那么你就不必经常改变所有这些。请看下图。

在此处输入图片说明


Wil*_*ill 7

我的项目语言级别设置错误.要使用,java.net.http您需要它至少为11.要更改项目语言级别,请参阅:https://www.jetbrains.com/help/idea/project-page.html

希望这有助于其他人.

  • 我正在使用内部版本#IU-192.5728.96,但不幸的是,它无法解决问题。 (3认同)

Dar*_*ar1 5

如果上述建议的解决方案(通过@Will)不能像我一样解决您的问题(即,设置项目语言级别),请检查以查看Java编译器的字节码目标版本已设置为,在您的项目偏好设置中: 在IntelliJ中为Java设置项目首选项字节码版本