1

我使用Jena 库编写了以下代码以在网页上打印 URI,但它显示错误。代码是

      public static void test(String url)
     {
      try
      {
           System.out.println("to go");
           Model read = ModelFactory.createDefaultModel().read(url);
           System.out.println("to go");
           StmtIterator si=read.listStatements();
            System.out.println("to go");
            while(si.hasNext())
             {
             Statement s=si.nextStatement();
               Resource r=s.getSubject();
             Property p=s.getPredicate();
                RDFNode o=s.getObject();
              System.out.println(r.getURI());
               System.out.println(p.getURI());
              System.out.println(o.asResource().getURI());

            }
      }
           catch(JenaException | NoSuchElementException c)
            {    }
          }

谁能帮我进一步解决这个问题???

它无法创建模型读取对象。URL 是 xml 页面的网址。

出现以下错误:

            Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at com.hp.hpl.jena.util.Metadata.<clinit>(Metadata.java:39)
         at com.hp.hpl.jena.JenaRuntime.<clinit>(JenaRuntime.java:37)
         at com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl.<clinit>(RDFReaderFImpl.java:74)
         at com.hp.hpl.jena.rdf.model.impl.ModelCom.<clinit>(ModelCom.java:54)
         at com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:142)
at com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel(ModelFactory.java:136)
at web.crawler.WebCrawler.test(WebCrawler.java:52)
at web.crawler.WebCrawler.main(WebCrawler.java:98)
    Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
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)
4

4 回答 4

2

在发行版的 lib/ 目录中添加所有 jar。您可以将 lib/* 形式用于类路径。

如果您仍然缺少 org.w3c.dom.ElementTraversal(位于 xml-apis 中),那是因为您使用的是旧版本的 Xerces 和旧的 xml-apis。

于 2012-09-22T14:59:00.147 回答
1
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

您的类路径中缺少库 slf4j*.jar。

于 2012-09-22T10:35:30.663 回答
1

以下是我必须添加的库:

  import org.slf4j.*;
  import org.apache.xerces.util.XMLChar;
  import org.w3c.dom.ElementTraversal;
  import org.apache.jena.iri.IRIFactory;
于 2012-09-22T12:10:08.060 回答
0

我解决了它,在 jena lib dir 中添加了所有可用的库。我猜 Jena 需要另一个 lib 或 jar 文件,但我不知道具体的 .jar,所以我将它们全部添加。然后它工作!

于 2016-06-18T16:26:37.107 回答