簡體   English   中英

錯誤:軟件包org.apache.http.client.methods不存在

[英]error: package org.apache.http.client.methods does not exist

沒有行家,gradle之類的東西。 我該如何解決以下問題? 我已經閱讀了有關Java類路徑的問題。 但是我需要深入了解如何找到一個程序包並將其包含在我的項目中。 確切地說,如何在該項目中包含org.apache.http.client.methods.HttpGet的內容。

這是HelloWorld.java文件

import java.io.IOException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder;

public class HelloWorld {
    public static void main (String[] args) throws IOException {
        Runtime.getRuntime().exec("clear");
        System.out.println("Console!!!");


        String url = "http://www.example.com";
        HttpClient client = HttpClientBuilder.create().build();
        HttpGet request = new HttpGet(url);
        request.addHeader("User-Agent", USER_AGENT);
        HttpResponse response = client.execute(request);


        BufferReader rd = new BufferReader(
            new InputStreamReader(
                response.getEntity().getContent()
            )
        );


        StringBuffer result = new StringBuffer();
        String line = "";
        while ((line = rd.readLine()) != null) {
            result.append(line);
        }


        System.out.println(result);
    }
}

這是命令

javac HelloWorld.java

這是輸出

HelloWorld.java:2: error: package org.apache.http.client.methods does not exist
import org.apache.http.client.methods.HttpGet;
                                     ^
HelloWorld.java:3: error: package org.apache.http.client does not exist
import org.apache.http.client.HttpClient;
                             ^
HelloWorld.java:4: error: package org.apache.http.impl.client does not exist
import org.apache.http.impl.client.HttpClientBuilder;
                                  ^
HelloWorld.java:13: error: cannot find symbol
        HttpClient client = HttpClientBuilder.create().build();
        ^
  symbol:   class HttpClient
  location: class HelloWorld
HelloWorld.java:13: error: cannot find symbol
        HttpClient client = HttpClientBuilder.create().build();
                            ^
  symbol:   variable HttpClientBuilder
  location: class HelloWorld
HelloWorld.java:14: error: cannot find symbol
        HttpGet request = new HttpGet(url);
        ^
  symbol:   class HttpGet
  location: class HelloWorld
HelloWorld.java:14: error: cannot find symbol
        HttpGet request = new HttpGet(url);
                              ^
  symbol:   class HttpGet
  location: class HelloWorld
HelloWorld.java:15: error: cannot find symbol
        request.addHeader("User-Agent", USER_AGENT);
                                        ^
  symbol:   variable USER_AGENT
  location: class HelloWorld
HelloWorld.java:16: error: cannot find symbol
        HttpResponse response = client.execute(request);
        ^
  symbol:   class HttpResponse
  location: class HelloWorld
HelloWorld.java:19: error: cannot find symbol
        BufferReader rd = new BufferReader(
        ^
  symbol:   class BufferReader
  location: class HelloWorld
HelloWorld.java:19: error: cannot find symbol
        BufferReader rd = new BufferReader(
                              ^
  symbol:   class BufferReader
  location: class HelloWorld
HelloWorld.java:20: error: cannot find symbol
            new InputStreamReader(
                ^
  symbol:   class InputStreamReader
  location: class HelloWorld
12 errors

我怎么解決這個問題? 如何添加供應商代碼? 如何導入org.apache.http.client.methods.HttpGet? ...

抱歉,我來自PHP。 在php中,我們有作曲家和包裝專家。 在Java世界中?

如果您下載了包含apache http內容的jar文件,請以這種方式更改您的命令行

javac -classpath <the_location_of_the_jar>;. HelloWorld.java

分號分隔一個或多個位置,點表示當前目錄

首先,您提供的代碼存在語法錯誤:1)您應該導入在Java文件中使用的所有類; 2)您拼寫為“ BufferedReader”。3)代碼中的USER_AGENT沒有定義。 一種修改后的代碼將如下所示:package com; 導入java.io. *;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.*;
import org.apache.http.client.*;
import org.apache.http.impl.client.HttpClientBuilder;

public class HelloWorld {
    public static void main (String[] args) throws IOException {
        Runtime.getRuntime().exec("clear");
        System.out.println("Console!!!");


        String url = "http://www.example.com";
        HttpClient client = HttpClientBuilder.create().build();
        HttpGet request = new HttpGet(url);
        request.addHeader("User-Agent", "XXXX");
        HttpResponse response = client.execute(request);


        BufferedReader rd = new BufferedReader (
            new InputStreamReader(
                response.getEntity().getContent()
            )
        );


        StringBuffer result = new StringBuffer();
        String line = "";
        while ((line = rd.readLine()) != null) {
            result.append(line);
        }
        System.out.println(result);
    }
}

然后,我們可以開始使用javac來編譯您的代碼。您的代碼已經引用了其他類,例如HttpClient或BufferedReader等。因此,您應該通過兩種替代方式告訴javac包含所引用類的jar:1)配置系統環境變量“ CLASSPATH”,其值是用分號分隔的jar列表,​​其中包含您引用的所有類。 2)向您的javac命令添加-classpath選項,該選項的值與“ CLASSPATH”相同。對於我的Windows環境,我使用以下命令進行了測試: C:\\Users\\Administrator>javac -classpath "C:\\Program Files\\Java\\jdk1.8.0_66\\jre\\lib;C:\\Program Files\\Java\\jdk1.8.0_66\\lib;C:\\com\\lib\\httpclient-4.5.2.jar;C:\\c\\lib\\httpclient-cache-4.5.2.jar;C:\\com\\lib\\httpcore-4.4.4.jar;C:\\com\\lib\\httpclient-win-4.5.2.jar;C:\\com\\lib\\httpmime-4.5.2.jar" c:\\com\\HelloWorld.java

希望對您有所幫助。

暫無
暫無

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

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