'Intellij can't find java.net.http when compiling with Java 11

I'm trying to get one of my projects ready for Java 11 but for some reason Intellij can't find java.net.http. It isn't underlining it as not found in module-info.java like it would if I typed it wrong but when I try build the project I get the error below. I've tried reinstalling Intellij 2018.2.3 and uninstalling all other versions of Java. Any advice on how to get this working would be appreciated.

Error:

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

module-info.java:

module crawler {
    requires java.net.http;
}

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);
    }
}

Structure:

crawler
    src
        Request
            Request.java
        module-info.java


Solution 1:[1]

I had the wrong project language level set. To use java.net.http you need it to be at least 11. To change the project language level see: https://www.jetbrains.com/help/idea/project-page.html

Hopefully this helps someone else out.

Solution 2:[2]

In the case that the above proposed resolution (by @Will) does not solve your issue as was the case with me (i.e. setting the project language level), check to to see what the bytecode target version of your java compiler has been set to, in your project preferences: Set project preferences byte code version for java in IntelliJ

Solution 3:[3]

I had the same problem with the package jdk.jfr. This is how I fixed it. It should work for you too.

In order to make it work I had to make 2 changes:

First I had to set the language level to 11; see in the picture below.

enter image description here

Then I had to adjust the Java Compiler. The Target bytecode version is 11 and I set the project bytecode version Same as language level. Then you don't have to change all of them constantly. Please see picture below.

enter image description here

Solution 4:[4]

For those who are having this problem in 2022, even if the solutions mentioned here did not help, I was able to figure out what the problem was and how to fix this.

First of all I wanted to make sure that the problem is not from my Maven config, so I ran the following in my terminal:

mvn package

followed by:

java -cp target/covid-cases-cli-1.0-SNAPSHOT.jar org.matrixeternal.covidcasescli.App

and it was build without any errors whatsoever. So it means something is up with IntelliJ.

I am using Java 17 and building with Maven using IntelliJ. IntelliJ uses its own internal command to build the project. To override this behaviour, you must go to Preferences - Build, Execution & Deployment - Build Tools - Maven - Runner and select the option Delegate IDE build/run actions to maven which will essentially run directly from the Maven config file using the mvn tool installed in the system, instead of using the IDE command.

Delegate IDE build/run actions to maven option

Solution 5:[5]

Set the compiler for IntelliJ as Java 11 IntelliJ Idea-> Preferences-> Build, Execution, Deployment -> Java Compiler Select java 11 from the drop down

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Will
Solution 2
Solution 3 Matécsa Andrea
Solution 4 r.gjoni
Solution 5 apurva