我正在嘗試使用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