主类中的ClassNotFoundException

时间:2014-01-07 03:46:54

标签: java classpath httpclient classnotfoundexception

我正在尝试编写一个从Yahoo Finance API中提取数据的Java应用程序。我使用Yahoo的例子作为参考。它在I -cp commons-httpclient-3.1.jar时正确编译。但是,当我运行它时,我得到一个错误,说没有找到主类。根据我的研究,我认为这是在运行期间缺少编译期间的类的结果。有什么建议吗?

这是[完整错误]

enter image description here

这是我正在使用的jar文件:http://mvnrepository.com/artifact/commons-httpclient/commons-httpclient/3.1

以下是代码片段:

import java.io.*;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;

public class YahooWebServiceGet {   

public static void main(String[] args) throws Exception {
    String request = "http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=umbrella&results=10";

    HttpClient client = new HttpClient();
    GetMethod method = new GetMethod(request);

    // Send GET request
    int statusCode = client.executeMethod(method);

    if (statusCode != HttpStatus.SC_OK) {
        System.err.println("Method failed: " + method.getStatusLine());
    }
    InputStream rstream = null;

    // Get the response body
    rstream = method.getResponseBodyAsStream();

    // Process the response from Yahoo! Web Services
    BufferedReader br = new BufferedReader(new InputStreamReader(rstream));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
    br.close();
}

}

2 个答案:

答案 0 :(得分:0)

我可以从你的屏幕截图中看到你的类路径只引用了公共库,而不是你的类。如果您的类在当前目录中,请添加;。到您的类路径(或将点更改为该类所在的目录)。此外,您不希望在要运行的类上指定.class。它会添加。

java -cp ~/Downloads/commons-httpclient-3.1.jar;. YahooWebServiceGet

使用java,您不直接指定类文件。它可以在一个罐子里或类路径上的任何地方。因此,您需要提供完整的类路径,然后提供包含任何包信息的java类,并且不需要.class扩展名。例如。 my.package.MyClass

答案 1 :(得分:0)

你的卡蒙德是什么?你应该添加-cp。运行类文件时如:

java -cp .;xxx.jar YahooWebServiceGet