我正在尝试使用TDB在Jena中与Jena进行查询。所以基本上我得到了一个n3文件名song.n3,并且使用这个文件我想在TDB中使用这个文件。所以我创建了一个在我的Java1文件夹(Netbeans项目文件夹)中生成的目录,然后我得到了实际的n3文件的来源。运行此代码后,我有错误“java.lang.NoClassDefFoundError”。基本上调试代码导致由行引起的错误:Dataset dataset = TDBFactory.createDataset(directory);.我不太清楚为什么会导致这个错误,因为我的目录是空的而没有模型。TDB Jena查询
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;做' - 不需要为了运行'ls'而使用子shell的分支。当然,在Java 7中,你可以在CLASSPATH上使用通配符,所以你甚至不需要这样做。 – 2011-12-28 18:16:00
诚然,谢谢伊恩。我不是为什么我这样做,从别的地方复制粘贴。变了! – 2011-12-28 21:22:20