1

Jena Libraryを使用して Web ページに 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 ページの Web アドレスです。

次のエラーが発生します。

            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

以下は、私がさらに追加しなければならなかったライブラリです。

  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 に答える
1
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

ライブラリ slf4j*.jar がクラスパスにありません。

于 2012-09-22T10:35:30.663 に答える
0

jena lib dirで利用可能なすべてのライブラリを追加して解決しました。Jenaには別のlibまたはjarファイルが必要だと思いますが、特定の.jarがわからないので、それらをすべて追加します。それはうまくいきます!

于 2016-06-18T16:26:37.107 に答える