Клиент Йена Фусеки

Я пытаюсь написать простой SELECT в jena-arq-3.1.0.jar, чтобы отправить javac -cp .;jena-arq-3.1.0.jar Main.javaзапрос SPARQL и получить результат.

Я нашел следующий код, написанный кем-то другим. Он продолжает сбой во время выполнения.

я использую java -cp .;jena-arq-3.1.0.jar Main

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/jena/atlas/io/Printable at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.jena.query.QueryFactory.create(QueryFactory.java:78) at org.apache.jena.query.QueryFactory.create(QueryFactory.java:52) at org.apache.jena.query.QueryFactory.create(QueryFactory.java:40) at Main.main(Main.java:24) Caused by: java.lang.ClassNotFoundException: org.apache.jena.atlas.io.Printable at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 16 more не печатать ошибки

Main.java врезаться!

Журнал ошибок

import java.net.URL;
import java.util.List; 

import org.apache.jena.query.Query; 
import org.apache.jena.query.QueryExecution; 
import org.apache.jena.query.QueryExecutionFactory; 
import org.apache.jena.query.QueryFactory; 
import org.apache.jena.query.QuerySolution; 
import org.apache.jena.query.ResultSet; 

class Main { 

    public static void main(final String[] args) throws Exception { 
        String queryString=
        "prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>"+
        "prefix owl: <http://www.w3.org/2002/07/owl#>"+

        "SELECT ?subject ?predicate ?object"+
        "WHERE {"+
        " ?subject ?predicate ?object"+
        " } LIMIT 25";

        // now creating query object
        Query query = QueryFactory.create(queryString);
        // initializing queryExecution factory with remote service.
        // **this actually was the main problem I couldn't figure out.**
        QueryExecution qexec = QueryExecutionFactory.sparqlService("http://localhost:3030/FirstEndpoint/sparql", query);

        //after it goes standard query execution and result processing which can
        // be found in almost any Jena/SPARQL tutorial.
        try {
            ResultSet results = qexec.execSelect();
            for (; results.hasNext();) {

            // Result processing is done here.
            }
        }
        finally {
           qexec.close();
        }
    } 

}

jena-arq

javac

java,sparql,

0

Ответов: 1


2 принят

Вам нужны все необходимые javas в classpath, а не только lib.

работает, потому что вы используете только классы из jena-arq JAR. javaне работает, потому что во время выполнения классы ARQ относятся к другим классам, например, в jena-core, jena-iri и т. д.

Самый простой способ - добавить все libs из дистрибутива Йены соответственно. самой libпапке к пути к классам.

Java, SPARQL
Похожие вопросы