在jena-tdb-0.9.4.jar中找不到TDBFactory?

时间:2014-01-28 13:24:28

标签: jena tdb

我已经下载了jena-2.6.4 zip来管理三重商店。在这个zip中有lib目录和库,jena-tdb-0.9.4.jar就是它们。

然而,在尝试最简单的以下代码时

import com.hp.hpl.jena.tdb.*;
...
String tdbFile  = "/tmp/tdb";
Dataset dataset = TDBFactory.createDataset(tdbFile);

我发错,说找不到TDBFactory。即使显式导入import com.hp.hpl.jena.tdb.TDBFactory也不起作用。该类未定义。

对此有何想法?

以下是错误消息返回

Exception in thread "main" java.lang.NoClassDefFoundError:     com/hp/hpl/jena/sparql/engine/main/StageGenBasicPattern
at com.hp.hpl.jena.tdb.TDB.wireIntoExecution(TDB.java:173)
at com.hp.hpl.jena.tdb.TDB.initWorker(TDB.java:157)
at com.hp.hpl.jena.tdb.TDB.<clinit>(TDB.java:137)
at com.hp.hpl.jena.tdb.TDBFactory.<clinit>(TDBFactory.java:85)
at test.JenaRepositoryManagement.initializeTheTDBRepository(JenaRepositoryManagement.java:88)
at test.views.Main.main(Main.java:102)

Caused by: java.lang.ClassNotFoundException: com.hp.hpl.jena.sparql.engine.main.StageGenBasicPattern
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more

1 个答案:

答案 0 :(得分:1)

您的堆栈并不能说它无法找到TDBFactory。它说它无法找到

  

com.hp.hpl.jena.sparql.engine.main.StageGenBasicPattern。

听起来你需要在你的类路径上有更多的罐子。从Apache Jena Releases下载apache-jena软件包后,将所有jar放在类路径的lib子目录中,而不仅仅是tdb jar。