【问题标题】:Intellij can't find java.net.http when compiling with Java 11使用 Java 11 编译时 Intellij 找不到 java.net.http
【发布时间】:2018-09-15 01:38:40
【问题描述】:

我正在尝试让我的一个项目为 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

模块信息.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);
    }
}

结构:

crawler
    src
        Request
            Request.java
        module-info.java

【问题讨论】:

标签: java intellij-idea java-11


【解决方案1】:

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

【讨论】:

  • 重启 Intellij Idea 2020.1(在 windows 上)后它工作了
【解决方案2】:

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

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

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

然后我不得不调整 Java 编译器。目标字节码版本是 11,我设置了项目字节码版本与语言级别相同。然后,您不必不断地更改所有这些。请看下图。

【讨论】:

    【解决方案3】:

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

    希望这对其他人有所帮助。

    【讨论】:

    • 我正在使用 build #IU-192.5728.96,不幸的是,这并不能解决问题。
    【解决方案4】:

    对于那些在 2022 年遇到这个问题的人,即使这里提到的解决方案没有帮助,我也能够找出问题所在以及如何解决这个问题。

    首先我想确保问题不是来自我的 Maven 配置,所以我在我的 终端 中运行了以下内容:

    mvn package
    

    接着是:

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

    它的构建没有任何错误。所以这意味着 IntelliJ 出了点问题。

    我正在使用 Java 17 并使用 IntelliJ 构建 Maven。 IntelliJ 使用自己的内部命令来构建项目。要覆盖此行为,您必须转到 Preferences - Build, Execution & Deployment - Build Tools - Maven - Runner 并选择选项 Delegate IDE build/run actions to maven,它实际上将使用系统中安装的 mvn 工具直接从 Maven 配置文件运行,而不是使用 IDE 命令。

    【讨论】:

      【解决方案5】:

      将 IntelliJ 的编译器设置为 Java 11 IntelliJ Idea-> 首选项-> 构建、执行、部署-> Java 编译器 从下拉列表中选择 java 11

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-01
        • 1970-01-01
        • 2019-08-31
        • 2014-04-05
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 1970-01-01
        相关资源
        最近更新 更多