[英]how to fix “java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory” error when run java jar application
[英]NoClassDefFoundError when trying to run a sparql query for Dbpedia in java. (org/slf4j/LoggerFactor)
該程序的目標是通過Java運行Sparql查詢,並在控制台中獲取相應的結果。
如果我沒有記錯,則錯誤是由於缺少jar文件造成的。 但是,我認為已添加了所需的jar文件。 我添加了以下jar文件: Jena-2.1.jar
和arq-2.8.7.jar
。
我的代碼如下:
public class Example {
public static void main(String[] args) {
//http request
String website = "http://dbpedia.org/sparql";
//whatever query we want to parse.
String query = "SELECT ?abstract WHERE { { <http://dbpedia.org/resource/Ronaldo> <http://dbpedia.org/ontology/abstract> ?abstract } }";
//query execution using the library object.
QueryExecution queryEx = QueryExecutionFactory.sparqlService(website, query);
try {
//results coming from the executed queries.
ResultSet results = queryEx.execSelect();
//prints the output.
for(; results.hasNext();){
//typecast results from set to qsolution
QuerySolution answer = (QuerySolution)results.next();
System.out.println(answer.get("?abstract"));
}
} catch(Exception e){
e.printStackTrace();
} finally{
queryEx.close();
}
}
我收到的錯誤圖像是:
<pre>Exception in thread "main" java.lang.NoSuchMethodError: com.hp.hpl.jena.iri.IRIFactory.jenaImplementation()Lcom/hp/hpl/jena/iri/IRIFactory;
at com.hp.hpl.jena.n3.IRIResolver.<clinit>(IRIResolver.java:42)
at com.hp.hpl.jena.sparql.mgt.SystemInfo.createIRI(SystemInfo.java:31)
at com.hp.hpl.jena.sparql.mgt.SystemInfo.<init>(SystemInfo.java:23)
at com.hp.hpl.jena.query.ARQ.init(ARQ.java:373)
at com.hp.hpl.jena.query.ARQ.<clinit>(ARQ.java:385)
at com.hp.hpl.jena.query.Query.<clinit>(Query.java:53)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:68)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40)
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:28)
at com.hp.hpl.jena.query.QueryExecutionFactory.sparqlService(QueryExecutionFactory.java:338)
at Example.main(Example.java:27)<code>
任何指導將不勝感激。 提前致謝。
jena-2.1是2004年2月。它與使用Jena 2.6.4的arq-2.8.7.jar(2010)不兼容。
現在是2016年。有關當前版本,請訪問: http : //jena.apache.org/download/
對於任何耶拿版本(當前版本為3.1.0),應使用發行版中提供的所有jar。 更好,如評論中所述,學習使用use maven / gradle / ...這將自動為您發生。
不支持混合來自不同版本的部分Jar,並且極不可能進行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.