簡體   English   中英

使用 Java 11 編譯時,Intellij 找不到 java.net.http

[英]Intellij can't find java.net.http when compiling with 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

模塊信息.java:

module crawler {
    requires java.net.http;
}

請求.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

如果上述建議的解決方案(由 @Will 提出)沒有像我一樣解決您的問題(即設置項目語言級別),請檢查您的 Java 編譯器的字節碼目標版本已設置為, 在您的項目首選項中: 在 IntelliJ 中為 Java 設置項目首選項字節碼版本

我對包 jdk.jfr 有同樣的問題。 這就是我修復它的方式。 它也應該對你有用。

為了使它工作,我必須進行 2 處更改:

首先,我必須將語言級別設置為 11; 見下圖。

在此處輸入圖片說明

然后我不得不調整Java編譯器。 目標字節碼版本為 11,我將項目字節碼版本設置為與語言級別相同 那么你就不必經常改變所有這些。 請看下圖。

在此處輸入圖片說明

我設置了錯誤的項目語言級別。 要使用java.net.http您至少需要 11。要更改項目語言級別,請參閱: https : //www.jetbrains.com/help/idea/project-page.html

希望這可以幫助其他人。

對於那些在 2022 年遇到這個問題的人,即使這里提到的解決方案沒有幫助,我也能夠弄清楚問題是什么以及如何解決這個問題。

首先,我想確保問題不是出自我的 Maven 配置,所以我在終端中運行了以下命令:

mvn package

其次是:

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

它的構建沒有任何錯誤。 所以這意味着 IntelliJ 出了問題。

我正在使用 Java 17 並使用 IntelliJ 構建 Maven。 IntelliJ 使用自己的內部命令來構建項目。 要覆蓋此行為,您必須 go 到Preferences - Build, Execution & Deployment - Build Tools - Maven - Runner和 select 選項Delegate IDE build/run actions to maven這實際上將使用 m916081 工具文件直接從 18916081 工具文件安裝在系統中,而不是使用 IDE 命令。

將 IDE 構建/運行操作委托給 Maven 選項

將 IntelliJ 的編譯器設置為 Java 11 IntelliJ Idea-> Preferences-> Build, Execution, Deployment -> Java Compiler Select java 11 從下拉列表中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM