Я пытаюсь выполнить запрос на Java с помощью Jena с использованием TDB. Так что в основном я получил n3 имя файла song.n3 и используя этот файл, я хочу использовать его с TDB. Поэтому я создал каталог, который создается в моей папке Java1 (папка проекта Netbeans), а затем у меня есть источник фактического файла n3. После запуска этого кода у меня появляется ошибка «java.lang.NoClassDefFoundError». В основном отладка кода приводит к ошибке, вызванной линией: Dataset dataset = TDBFactory.createDataset (directory) ;. Я не слишком уверен, почему эта ошибка вызвана, может быть, это потому, что мой каталог пуст без модели.TDB Jena Querying
public static void main(String[] args) throws IOException {
String directory = "./tdb";
Dataset dataset = TDBFactory.createDataset(directory);
Model tdb = dataset.getDefaultModel();
String source = "C:\\Users\\Name\\Documents\\NetBeansProjects\\Java1\\src\\song.n3";
FileManager.get().readModel(tdb, source, "N3");
String queryString = "PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT * WHERE { ?x owl:sameas ?y }";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, tdb);
ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.out, results, query);
qe.close();
}
}
Это было бы намного проще сделать: 'for i in ./TDB-0.8.9/lib/*.jar; do' - нет необходимости в fork суб-оболочки для запуска 'ls'. Конечно, в Java 7 вы можете иметь подстановочные знаки в CLASSPATH, поэтому вам даже не нужно это делать. –
Верно, спасибо Яну. Я не понимаю, почему я это сделал, некоторые странные копии и вставки из другого места. Измененный! –