我在windows中配置了tomcat 7上的solr,所以当我手动启动tomcat服务器时,当我点击solr时,它在我的浏览器中搜索得很好。
当我使用main方法编写一个java类时,结果将被提取并显示在控制台上。
public class Code{
public static void main(String[] args) throws MalformedURLException, SolrServerException {
SolrServer solr = new CommonsHttpSolrServer("http://192.168.16.221:8080/solr");
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("q", "subhash");
System.out.println("response = " + params);
QueryResponse response = solr.query(params);
System.out.println("response = " + response);
}
}
但是当我在方法中使用相同的代码并使用其对象调用此方法时,会显示此错误
java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/SolrServerException
急切地等待你的回复。
答案 0 :(得分:1)
您需要使用“-classpath”命令行选项“java”,以告诉您所需的所有库所在的位置。默认CLASSPATH仅包括系统类等。
因此,如果您在当前目录中有Code.class文件以及solr-x.y.z.jar,那么您需要执行以下操作:
$ java -classpath .:solr-x-y-z.jar Code
如果Solr没有一堆自己的依赖项,我会感到惊讶,这意味着你需要在-classpath中包含一堆类似于上面的JAR文件。
这是Java 101。