0

私は Jena API を学んでおり、Schemagen を使用して、パッケージ com.hp.hpl.jena.vocabulary のようなクラスを自分の語彙用に作成したいと考えています。

http://www.apache.org/dist/incubator/jena/apache-jena-2.7.0-incubating/で Jena をダウンロードしました。ダウンロードしたら、解凍してそのままにしておきます。

C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating は、bat フォルダー、bin フォルダー、javadoc-arq フォルダーなどがあるフォルダーです。

C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating\lib にあるすべてのライブラリと相対リンクを使用して、プロジェクトの 1 つで Jena をテストしました。動作します。

コマンド ラインで簡単に使用できるようにするために、ファイル "MyKnowledgeBase.rdf" を lib フォルダーに移動しました。

libフォルダーから試しました

java jena.schemagen -i "myKnowledgeBase.rdf"

そしてこれを入手

Exception in thread "main" java.lang.NoClassDefFoundError: jena/schemagen
Caused by: java.lang.ClassNotFoundException: jena.schemagen
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: jena.schemagen.  Program will exit.

だから私はクラスパスを設定しようとしました:

C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating\lib>
set CLASSPATH=commons-codec-1.5.jar;httpclient-4.1.2.jar;httpcore-4.1.3.jar;icu4j3.4.4.jar;jena.arq-2.9.0-incubating.jar;jena.core-2.7.0-incubating.jar;jena.iri0.9.0-incubating.jar;log4j-1.2.16.jar;slf4j-api-1.6.4.jar;slf4j-log4j12-1.6.4.jar;xercesImpl-2.10.0.jar; xml-apis-1.4.01.jar;

しかし、私はまだ同じエラーがあります。私も試してみました

java -cp commons-codec-1.5.jar;httpclient-4.1.2.jar;httpcore-4.1.3.jar;icu4j3.4.4.jar;jena.arq-2.9.0-incubating.jar;jena.core-2.7.0-incubating.jar;jena.iri0.9.0-incubating.jar;log4j-1.2.16.jar;slf4j-api-1.6.4.jar;slf4j-log4j12-1.6.4.jar;xercesImpl-2.10.0.jar; xml-apis-1.4.01.jar; jena.schemagen -i myKnowledgeBase.rdf

私がする時

echo %CLASSPATH% 

入力した内容を取得します

各jarの絶対パスで set CLASSPATH を使用しようとしましたが、機能しません。

だから今、私は何をすべきかわかりません。

Jena では、jena-core-2.7.0-incubating.jar (netbeans を使用) のパッケージ「jena」に schemagen.class が見つかりました。

エクスプローラーでは、クラスファイルが見つかりませんでした。

java -jar を実行するコマンドラインですでにいくつかのプロジェクトを実行しているため、Java とコマンドラインは問題ありません

ご協力ありがとうございました

編集: 引数 -classpath と %CLASSPATH% の間のスペースを削除しましたが、別のものが得られました \o/ まだ機能しませんが、進行中です!

「認識されないオプション」および「Java 仮想マシンを作成できませんでした」

Edit2 : これを解決できなかったので、netbeans で新しいプロジェクトを作成しました。schemagen クラスのコピーを作成し、それをメイン クラスとして配置し、すべての jar をライブラリとして含めます。その後 :

java -jar "C:\Users\moi\NetBeansProjects\MyJena\dist\MyJena.jar" -i "myKnowledgeBase.rdf" -o "C:\Users\moi\NetBeansProjects\apache-jena-2.7.0-incubating\apache-jena-2.7.0-incubating\lib" --ontology
4

2 に答える 2

1

Jena 2.7.0 を含む最近のすべてのリリースでは、すべての Jena コマンド ライン ツールに Linux シェルと Windows バッチ スクリプトが提供されています。これらのスクリプトは、CLASSPATH を適切に設定します。Windows を使用しているようですので、 を使用する必要がありますbat\schemagen.bat

于 2012-06-21T09:15:00.477 に答える