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