簡體   English   中英

嘗試在Java中為Dbpedia運行sparql查詢時出現NoClassDefFoundError。 (org / slf4j / LoggerFactor)

[英]NoClassDefFoundError when trying to run a sparql query for Dbpedia in java. (org/slf4j/LoggerFactor)

該程序的目標是通過Java運行Sparql查詢,並在控制台中獲取相應的結果。

如果我沒有記錯,則錯誤是由於缺少jar文件造成的。 但是,我認為已添加了所需的jar文件。 我添加了以下jar文件: Jena-2.1.jararq-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.

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