TDBを使用してJenaを使用してJavaでクエリを実行しようとしています。だから基本的に私は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/.TDB-0.8.9/lib/*.jar」の方がはるかに簡単です。 'do ' - ' ls'を実行するためにサブシェルをforkする必要はありません。もちろん、Java 7では、CLASSPATHにワイルドカードを付けることができるので、その必要はありません。 –
本当にありがとう、イアン。私はなぜそれをしたのか、どこか別のところから奇妙なコピー&ペーストをしています。かわった! –